检查 gdb 中的静态 const 类成员

Gil*_*pie 10 c++ gdb

如何static const在 gdb 中打印类成员的值?

说我有:

#include <iostream>

struct foo {
    static const int bar = 5;
};

int main() { 
    std::cout << foo::bar;
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

如何检查foo::bargdb 中的内容?

我试过:

(gdb) p foo::bar
No symbol "foo" in current context.
(gdb) p 'foo::bar'
No symbol "foo::bar" in current context.
Run Code Online (Sandbox Code Playgroud)

小智 1

你不能,因为 gcc 不会将其解析为符号,而是解析为程序集中的实际值,因此 gdb 没有什么可看的。如果需要,您可以添加volatile关键字来阻止编译器执行此优化。