Visual Studio Code调试数组求值

46

在使用 Visual Studio Code 调试 PHP 代码时,我遇到了一个小问题。XDebug 能够正常工作,我可以在断点处停下来并通过将鼠标悬停在变量上或将它们添加到监视器中来评估变量。

然而,当我尝试查看具有超过32个项的数组时,只能看到前32个项。例如,具有172个项的数组只会显示32个项。

我尝试以各种方式评估此数组,在控制台内运行转储命令或使用 json_encode,但都没有成功。

有什么想法吗?


4
可能是如何让xdebug var_dump显示完整的对象/数组的重复问题。 - Phiter
2
请查看可能的重复项。您可能已经限制了这些值。 - Phiter
2
太好了!那帮助我解决了我的问题。最初更改配置文件并没有改变任何东西,但是我去了Visual Studio XDebug扩展(felixbecker.php-debug)的详细信息,描述了如何通过更改launch.json设置在Visual Code中运行时覆盖这些设置。 - Chen Leikehmacher
太棒了!将此作为您问题的答案。尝试添加指向其Github信息的链接。 https://github.com/felixfbecker/vscode-php-debug#supported-launchjson-settings - Phiter
1个回答

82

感谢Phiter的评论,我成功找到了解决方法。

基本上,XDebug可以通过放置在php.ini文件中的各种选项进行配置。其中包括指定在GUI上显示对象深度的选项。

然而,在通过Visual Code的PHP Debug(felixbecker.php-debug)扩展进行调试时,这些设置必须在其他地方进行配置。完整的说明列在此页面上:https://github.com/felixfbecker/vscode-php-debug#supported-launchjson-settings 大意是打开左侧栏上的调试面板->单击齿轮图标以打开启动.json文件,该文件包含调试器的设置,并添加以下代码片段:

{ "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000, "xdebugSettings": { "max_children": 999, } },

就是这样。


15
我遇到了一个非常类似的问题,但我的情况不是孩子数量的问题,而是对象/数组的深度。我的数组只显示一层深度,因此除了添加“ max_children:999”外,我还必须添加“ max_depth:10”。 - Jules Colle
1
太好了!谢谢,我在VSCode中调试其他东西时遇到了很多问题。终于发现array[35]有一个值 :) - O.k
谢谢@Jules Colle :-),那应该是答案的一部分。 - Daniel Katz
5
在查看一些长字符串时,我遇到了问题,你可以将max_data设置为-1来禁用任何限制。 - Sir CodesALot
这真的很有帮助。谢谢你。 - kaeland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接