gpt4 book ai didi

linux - gdb 使我的机器崩溃。如何调试?

转载 作者:太空宇宙 更新时间:2023-11-04 09:32:25 26 4
gpt4 key购买 nike

我们正在编写一个相当大的系统,该系统由一组 C++ 程序构建而成。 (大量使用共享库)

当尝试使用 gdb 调试任何程序时,如果您设置断点并且(我猜)程序遇到断点,整个机器将立即崩溃并重新启动。

我不知道从哪里开始。/var/log/messages 中没有任何内容。 dmesg 仅显示机器正在重新启动。

连接的监视器会快速闪烁(我猜)一条内核崩溃消息,然后它就消失了。甚至无法阅读它是什么。 Centos 6 32 位发行版:

# uname -a
Linux 3.16.6 #1 SMP Fri Oct 31 18:56:38 SGT 2014 i686 i686 i386 GNU/Linux
# gdb --version
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)

我似乎找不到任何日志文件。

要做什么?使用 print 语句调试庞大的系统需要很长时间。重建内核?任何程序或建议表示赞赏。

最佳答案

如果您遇到内核 panic ,显然您需要在机器重新启动之前捕获输出。有几种方法可以做到这一点:

  1. 将串行线路连接到服务器,并让控制台在串行上回显。为此,您需要在启动时在内核命令行上传递 console=ttyS0。或者,

  2. 使用 netconsole 在网络上发送数据包并从另一台机器监控这些数据包。

还有其他选项可能也有帮助——更多信息请参见此处:https://wiki.ubuntu.com/Kernel/KernelDebuggingTricks

也就是说,当然,您仍然需要修复任何错误。听起来好像您正在运行自定义内核 - 您可以采用不同的内核修订版(希望错误已修复)吗?

格雷格

关于linux - gdb 使我的机器崩溃。如何调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29987939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com