我正在使用gdb 6.6 在 solaris 上调试正在运行的程序,并注意到有时 gdb 会进入(内联)函数,即使我发出了下一个命令。我的开发主机最近重新安装了一个稍新的 solaris 10 版本,我确信在重新安装主机之前不存在自动步进。代码使用与 makefile 相同的选项进行编译,并且所有源代码自主机重新安装以来均未更改。
是否有任何设置/新的默认选项会影响我可以检查的 gdb 的调试行为?有谁知道为什么我的 gdb 现在自动执行?它真的很痛苦......
[编辑]澄清:我不是指inline
关键字,而是在头文件中实现的方法/函数。例子:
header.hpp:
class MyClass
{
public:
void someFunc() { ... does something }
}
source.cc:
{
MyClass instance;
instance.someFunc(); // doing NEXT in gdb will actually STEP into header.hpp
}