SSブログ

PHPのデバッガで文字列が途中で切れる。 [プログラミング]

EclipseとかVSCodeのデバッガで実行中のPHPの変数の中身を見れたりするのだけれど、その中身が不完全だという話。

ヒアドキュメントでSQLとかの文字列をべた書きにしていたりするのだけれど、あんまり長い文字列だと表示が切れるようだった。初めはヒアドキュメントの文字列の長さ制限とか、文字列自体の長さ制限かなと思っていたんだけど、全然違った。調べたんだけどたぶん2GBとか、普通に使っていれば何の問題もない上限だったと思う。

ヒアドキュメントとはいえ、2GBを超えるテキストというのはなかなかないと思うので、これがボトルネックになっているわけではなかった。何が悪かったかというと、どうやらXdebugにボトルネックというか表示制限があったようだ。

これはvar_dump用なんだけど、他の出力にも効くかな?

https://mawatari.jp/archives/do-not-omit-the-result-of-var_dump


Eclipse側にも表示の限界が設定されていて、それを意図的に取り払わないと見られないようだ。

https://www.it-swarm-ja.tech/ja/java/eclipse%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E4%B8%AD%E3%81%AB%E5%AE%8C%E5%85%A8%E3%81%AA%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/969626321/

ん~上手くいかない。デバッガ出力には関係ないのかな? EclipseでもVSCodeでも同じところで切れてしまうのは変わっていなかった。切れる場所も設定前も後も同じ。

やっぱSQLの文字列とか抽出して見たいときとかあるから(実際に別のツールでエラーが出てるか投入したりできるしね)、やっぱり全部見たりできた方がいい。

VSCodeで設定しないと切れるという話があった。ちょっとやってみる。

https://www.saaria.info/archives/3897

ダメやった。何が悪いんだろう。php.iniと同じ名前にしたらいいかなと思ったけど、それだとデバッガが動かなかった。なんだろうねぇ。それと無制限の-1の設定とかはVSCode側ではできないっぽい。まぁとりあえずは見られているからいいんだけど、いざとなったとき困りそうな気がする。

https://kitigai.hatenablog.com/entry/2019/06/20/004843

やっぱ-1とかはダメみたい。今度はphp.iniと揃えてみっか。ううむ、php.iniとVSCodeを揃えてみたけれどうまくいかないな。何が悪いのだろう。


ここいらへん見たけど、何が関係しているのかわかんないし。

https://xdebug.org/docs/develop#display

そもそも文字列の長さと
xdebug.var_display_max_children
xdebug.var_display_max_data
xdebug.var_display_max_depth
が関係しているのかどうかも怪しいんですけどね。

そもそも文字列の扱いが内部的に一文字ずつのarrayだったりしたら長さ的に話にならないし。それこそ-1で無制限にしないといけないんだろうけど、それだとVSCodeで扱えないみたいだしね。なんか面倒になってきて諦めました。


タグ:PHP
コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0