作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当做 tab 时,那个让我感到惊讶。对于断点的自动完成,它出现了相同方法的两个选项。
test::TestFoo::SendFoo(short)
test::TestFoo::SendFoo(short)::fooID
在 cpp 上:
bool TestFoo::SendFoo( short x )
{
...
static unsigned int fooID = 0;
为什么 gdb 不同?使用一个或另一个有什么好处?
问题标记为 C++,以避免对 C static 的任何误解。
gdb --version
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-56.el6)
...
最佳答案
SendFoo::fooID
和 SendFoo
是两种不同的符号,我可以想象 gdb 为您提供的两个断点会有所不同 - 虽然我是不是很熟悉:
定义/初始化fooID
的行在整个程序中只会命中一次,因此该行的断点也应该只命中一次。每次调用函数时都应命中函数级断点,因此存在重大差异。
据我所知,函数作用域 static
对于 C 和 C++ 来说是相同的 - 一个在该函数的所有调用之间共享并在函数第一次被调用时初始化的变量。
关于c++ - 有什么好处以及为什么 gdb 不同于 MethodName AND MethodName::<static var>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13763683/
我是一名优秀的程序员,十分优秀!