在 VS Code 中调试 C/C++ 时如何查看全局变量?

How can I see global variables when debugging C/C++ in VS Code?

提问人:Nisba 提问时间:4/21/2018 最后编辑:starballNisba 更新时间:10/30/2023 访问量:14995

问:

我正在使用Visual Studio Code,当我调试(我正在调试使用Clang编译的C++代码)时,我只看到局部变量。 我没有看到任何全局变量列表。

如何查看所有变量?

enter image description here

在本例中,我处于循环中,我只看到循环内定义的所有变量,而不是外部定义的变量。

C++ 可视化工作室代码

评论


答:

17赞 Andrew L 4/21/2018 #1

您需要手动将全局变量添加到监视窗口。

  1. 设置断点
  2. 开始调试 (Debug -> Start Debugging 或 F5)
  3. 打开监视窗口(调试 -> Windows->监视 ->监视 1)
  4. 手动输入变量的名称

评论

0赞 Robin Hsu 3/17/2020
但是我无法更改该值,如果它在“监视”窗口中...
3赞 Tan Nguyen 1/29/2022
手动键入不是长期解决方案。
2赞 Baptiste Florentin 11/12/2019 #2

在 Visual Studio Code 中,只需转到调试菜单中的“监视”面板,然后单击“+”,然后键入要监视的变量的名称。 希望对您有所帮助!

0赞 Rain 8/15/2022 #3

按照 Andrew L 答案中的步骤操作后,您可以借助以下任一方法修改变量的值:

1. 调试控制台

enter image description here

2. 运营商地址

enter image description here

通过在要监视的变量前面加上 (&),我们现在可以将其展开,然后右键单击取消引用的变量以设置值。

0赞 starball 10/29/2023 #4

如前面的答案所述,使用“WATCH”子视图,按“+”按钮,然后键入要监视的全局变量的名称,而不是“变量”子视图。例如,或者如果涉及任何命名空间,则为 .my_global_variablemy_top_level_namespace::my_inner_namespace::my_global_variable

如果涉及任何未命名的命名空间,您可能需要找出变量的残缺名称并改用它(实际上不确定您还会/可以做什么)。如果您使用 gcc 找到它,一种方法是挖掘 .nm -nC path/to/my_executable_filename | less

在最新版本的 C/C++ 扩展中,还应该支持从该子视图编辑全局变量(右键单击该变量并单击“设置值”),尽管在过去某个时候它被破坏了,这可以通过编写该变量地址的表达式来解决(例如),然后在子视图中展开该项目以获取变量的值, 然后右键单击并在那里执行“设置值”。&my_variable