Chr*_*ris 8 debugging namespaces global-variables visual-studio
在Visual Studio 2008中调试非托管C++项目时,我偶尔会想看到全局变量的值.我们没有很多这些,但那些都在名为'global'的名称空间中声明.例如
namespace global
{
int foo;
bool bar;
...
}
Run Code Online (Sandbox Code Playgroud)
问题是当代码在断点处停止时,默认的调试工具提示(从指向变量名称)和quickwatch(变量名称上的shift-f9)不考虑名称空间,因此不起作用.
所以例如我可以指向'foo'并且什么都没有出现.如果我在foo上移动-f9,它会调出快速表,然后说"CXX0017:错误:符号"foo"未找到".我可以通过在快速监视窗口中手动编辑变量名称来解决这个问题,并在其前面添加"global ::"(考虑到每次想要快速观察时都必须这样做,这很麻烦),但是没有修复工具提示我可以解决.设置项目属性的"默认命名空间"没有帮助.
我如何告诉VS调试器使用它已经知道变量被声明的命名空间(因为它在那里有声明),或者,如果找不到,则告诉它一个默认的命名空间来查找变量他们?
我的google-fu未能找到答案.这个报告列出了同样的问题,MS称它是"按设计",但即便如此,我希望有一些方法可以解决它(也许巧妙地使用autoexp.dat?)
小智 2
使用包含源代码中的名称空间的全名为我解决了这个问题。
例如:写
global::bar = (global::foo==0)
Run Code Online (Sandbox Code Playgroud)
代替
bar = (foo==0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5201 次 |
| 最近记录: |