gpt4 book ai didi

c - 在后台运行 gdbserver 调试程序并不时使用 gdb 连接到它

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:26 26 4
gpt4 key购买 nike

我在基于 Debian 的 Linux 上用 C 为嵌入式设备编写了一个程序。

其中一台设备在运行 8 天后出现段错误,所以这不是一个非常频繁的错误,我可以使用 gdb 快速跟踪。

几年前我知道我使用 gdb(我猜是 gdbserver)运行与 shell 分离的程序,这样我就可以让设备保持运行并每天检查是否发生了不好的事情,但我不记得了我是怎么做到的!

我尝试过使用 gdbserver,使用 gdb 连接到它,但是当我关闭连接时它会停止调试。

你知道如何实现吗?

最佳答案

您必须分离,而不是那样退出 gdb。

由于您只是进行事后分析,无论如何,我还是推荐一些完全不同的东西:

启用核心转储;以 root 身份运行

 > sudo -s ##become root
$ echo "* soft core unlimited" >> /etc/security/limits.conf
$ su -l <user that is running the crashing program>
$ ulimit -c unlimited
$ program
##wait for crash

(解除对最大核心转储文件大小的任何限制,包括默认的 0B 限制)。

然后,崩溃后,找到core.* coredump文件,用gdb打开。瞧,崩溃时程序的状态会在 gdb 中恢复,您几乎可以执行崩溃时附加 gdb 可以执行的任何操作。

关于c - 在后台运行 gdbserver 调试程序并不时使用 gdb 连接到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631939/

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