Visual Studio Code 调试 数组评估

Posted

技术标签:

【中文标题】Visual Studio Code 调试 数组评估【英文标题】:Visual Studio Code debugging Array evaluation 【发布时间】:2018-09-19 23:39:48 【问题描述】:

我在使用 Visual Studio Code 调试 php 时遇到了一个小问题。 XDebug 工作正常,我可以在断点处停止并通过将鼠标悬停在变量上或将它们添加到观看来评估变量。 但是,当我尝试查看包含超过 32 个项目的数组时,我只能看到前 32 个项目。例如,包含 172 个项目的数组将仅显示 32 个项目。 我试图以某种方式评估这个数组,在控制台内运行转储命令或 json_encode,但无济于事。

有什么想法吗?

【问题讨论】:

How to get xdebug var_dump to show full object/array的可能重复 检查可能的重复项。您可能限制了这些值。 太棒了!这帮助我解决了我的问题。最初更改配置文件并没有改变任何东西,但是我去了 Visual Studio XDebug 扩展 (felixbecker.php-debug) 详细信息,并描述了如何通过更改 launch.json 在通过 Visual Code 运行时覆盖这些设置设置。 太棒了!将此添加为您问题的答案。尝试添加指向他们的 github 信息的链接。 github.com/felixfbecker/… 【参考方案1】:

感谢 Phiter 的评论,我设法找到了解决办法。

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

但是,当通过 Visual Code 的 PHP Debug (felixbecker.php-debug) 扩展进行调试时,这些设置必须在别处进行配置。此页面上列出了完整的说明:https://github.com/felixfbecker/vscode-php-debug#supported-launchjson-settings 它的要点是打开左侧栏的调试面板->单击齿轮图标以打开包含调试器设置的launch.json文件,然后->添加以下代码sn-p:

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

就是这样。

【讨论】:

有一个非常相似的问题。但是,在我的情况下,问题不是孩子的数量,而是对象/数组的深度。我的数组只会显示 1 级深度所以除了添加 "max_children": 999 我还必须添加 "max_depth": 10 太棒了!谢谢你在vscode中调试其他东西时我很头疼。最后,发现 array[35] 有一个值 :) 感谢@Jules Colle :-),这应该是答案的一部分。 我在查看一些长字符串时遇到了问题,您可以将max_data 设置为-1 以禁用任何限制。 这真的很有帮助。谢谢。

以上是关于Visual Studio Code 调试 数组评估的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio Code - 调试 Node.js 代码

visual studio code怎么运行代码

visual studio code(vscode) 调试php

Visual Studio Code 调试 PHP

Visual Studio Code 中的远程调试

Visual Studio Code调试electron主进程