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

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

enter image description here

在这种情况下,我在一个循环内部,只能看到在循环内定义的所有变量,而不能看到在循环外定义的变量。

3
为什么要踩我?我习惯在Xcode中看到局部变量、全局变量和自动变量,如果我没记错的话,连Visual Studio也是这样工作的! - Nisba
4个回答

17

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

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

但是如果值在观察窗口中,我无法更改它的值... - Robin Hsu
3
手动输入不是长期解决方案。 - Tan Nguyen

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

0

在你按照Andrew L的回答所述步骤后,你可以通过以下方式修改变量的值:

1. 调试控制台

enter image description here

2. 取地址运算符

enter image description here

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

0
如前面的答案所述,不要使用“VARIABLES”子视图,而是使用“WATCH”子视图,按下“+”按钮,然后输入您想要监视的全局变量的名称。例如:my_global_variable,或者如果涉及任何命名空间,my_top_level_namespace::my_inner_namespace::my_global_variable
如果涉及任何未命名的命名空间,您可能需要找出变量的混淆名称,然后使用该名称(实际上不确定您还能做什么)。如果您使用gcc,一种找到它的方法是通过nm -nC path/to/my_executable_filename | less进行查找。
在最新版本的C/C++扩展中,应该也支持从该子视图编辑全局变量(右键点击变量并点击“设置值”),尽管在过去的某个时刻它是有问题的,但可以通过编写该变量地址的表达式(例如:&my_variable),然后展开子视图中的该项以获取变量的值,然后右键点击并在那里进行“设置值”来解决这个问题。

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