c++ - 我们怎样才能跳过 GDB 中的函数调用?

标签 c++ gdb

我想了解如何单步执行函数调用。例如,在下面最简单的程序中:

 #include <iostream>
 #include "test.h"

 using std::cout;
 using std::endl;

 Uint u;

 int main()
 {
     cout << "execution starting..." << endl;
     cout << u.a << endl;
     cout << "execution completed" << endl;
 }

好的,我在 break 11 的第 11 行设置了一个断点命令。现在我想跳过所有将被调用的指令来打印 "execution starting..."并停在 operator <<调用打印 endl象征。我怎样才能做到这一点?我应该使用哪个命令?

最佳答案

在 GDB 中,step表示介入(将进入调用的函数内部),并且 next表示跨过(继续并在下一行停止)。

但在您的特定情况下,next可能不是你想要的,我会先建议step进入函数打印“执行开始...”,然后使用finish继续直到它返回,这样程序将停止在 <<endl .

关于c++ - 我们怎样才能跳过 GDB 中的函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28660449/

相关文章:

objective-c - 调试 iOS : How do I break on property value change?

linux - GDB 使用 clone() 调试应用程序

c - 为什么 GDB 在到达 `main` 之前不能解析这个符号?为什么 valgrind 根本无法解决它?

c++ - 氧气/C++ : how to link to anonymous namespace variables

c++ - 从 `cmd` 文件启动的进程创建进程

c++ - 使用 ATL 覆盖 QueryInterface

c++ - 如何优化归并排序?

c++ - g++ Double Free 或腐败...但是如何?

linux - 使用 qemu-user 进行信号处理

c++ - 保存并重新启动暂停的 gdb session