【问题标题】:"thread apply all bt full" gives blank in GDB“thread apply all bt full”在 GDB 中给出空白
【发布时间】:2011-01-07 21:44:18
【问题描述】:

我正在尝试使用 GDB 6.6 在运行 Slackware 12 的 Linux 服务器上调试多线程进程。

一旦我附加并发出命令“thread apply all bt full”,它就会一无所获(回到 gdb 提示符)。

知道为什么会这样吗?

【问题讨论】:

  • 程序是以其他用户还是root身份运行?您是否以 root 身份运行?
  • 我都试过了。该进程以 root 身份启动,但 sudo 以特权较低的用户身份调用。
  • 最后的猜测 - 你确定它是多线程的吗?你只使用“bt”得到任何输出吗?
  • 请剪切/粘贴您与 GDB 的整个交互。您可能还希望将 GDB 升级到当前 (7.0.1) 版本。
  • @Duck,是的,它是多线程的。当使用“bt”时,我确实得到了一个线程的回溯。

标签: linux multithreading debugging gdb slackware


【解决方案1】:

我遇到了这个问题,发现可以按如下方式解决:

  1. 运行“bt”。这应该显示线程的回溯,尽管可能不是您想要的。
  2. 现在“继续”。
  3. 按 ctrl+c。我看到类似“[Switching to LWP %d]”的内容
  4. 再次按 ctrl+c。这在我想查看回溯的线程处中断,但似乎也使“线程应用所有 bt 满”开始工作。

【讨论】:

  • 感谢您的帖子;我无法再尝试这个了,因为我已经离开了特定的环境和我遇到麻烦的特定过程。 +1 详细帖子
【解决方案2】:

尝试上一个 GDB 版本。 7.1 或 7.2。一切都应该正常。

【讨论】:

    猜你喜欢
    • 2021-04-02
    • 2019-04-26
    • 2012-04-05
    • 1970-01-01
    • 2011-10-20
    • 2021-10-09
    • 1970-01-01
    • 2018-04-04
    • 2022-01-16
    相关资源
    最近更新 更多