c++ - gdb 启动但不逐行执行

标签 c++ gdb

所以我正在尝试使用 GDB。我用 -g 编译我的代码,然后是 gdb ./a.out

GNU gdb 启动,但在我键入 r 启动后,程序运行就像我调用 ./a.out 时的正常运行一样。

你知道是什么原因造成的吗?我对 gdb 了解不多,我很少使用它,我一直以同样的方式使用它一段时间,从未遇到过这种行为。

编辑:它在我设置断点时起作用。但是我仍然很困惑,为什么我能够在之前没有设置任何断点的情况下使用它几个月。

最佳答案

Do you know what could cause this?

这是有意的行为。 run 命令开始执行劣质(正在调试的)程序。

该程序可能会遇到错误(例如崩溃),在这种情况下,GDB 会收到通知并停止执行下级,让您四处看看。

程序也可能遇到您之前插入的断点,再次让您查看当前状态。

或者程序可能会运行到完成(如果它没有执行任何您设置断点的代码,或者如果您没有设置任何断点,并且如果它没有任何在致命信号中出现的错误).如果发生这种情况,您将收到“程序正常退出”消息。

I am still confused as to why I was able to use it for months without setting any breakpoints before.

您的程序可能会崩溃,现在不会了。

关于c++ - gdb 启动但不逐行执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48727868/

相关文章:

c++ - 使用 GDI 以图像为中心的黑色背景

c++ - 明确定义 'static const variable in a struct' 在 C++ 11 及更高版本中有什么区别吗?

c++ - 让 GDB 在调试时完全打印一个大的 std::map

汇编 - 试图将字节移动到内存不起作用

assembly - GDB - 断点地址

c++ - 返回使用父对象数据的对象,然后使它们无效

c++ - 如何创建具有多类的 MFC 扩展 dll?

c++ - 通过按钮使用 StackedWidget 更改页面不起作用

c++ - 我对 gdb 内存地址有疑问

c - 编译器-调试器的奇怪行为