【问题标题】:gdb launches but doesn't execute line by linegdb 启动但不逐行执行
【发布时间】:2018-02-11 03:01:17
【问题描述】:

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

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

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

编辑:当我设置断点时它可以工作。但是我仍然很困惑为什么我能够使用它几个月而不设置任何断点。

【问题讨论】:

  • 你设置断点了吗?
  • @aschepler 不,我没有。但我以前从来没有这样做过。你认为我以前使用过某种经过审核/编辑的版本吗?我仍然在我已经使用了一段时间的同一平台上。
  • 如果你不破坏程序,它会正常运行。只有你破坏程序或程序崩溃(例如:段错误),你才能调试它。

标签: c++ gdb


【解决方案1】:

你知道是什么原因造成的吗?

这是有意的行为。 run 命令启动下级(被调试)程序的执行。

该程序可能遇到错误(例如崩溃),在这种情况下,GDB 将收到通知并停止执行劣质程序,并让您环顾四周。

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

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

我仍然很困惑为什么我能够使用它几个月而不设置任何断点。

您的程序可能崩溃了,但现在没有。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 2012-09-23
    相关资源
    最近更新 更多