- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在基于 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/
环境是: target:x86_64 client,运行 strip 化的程序 主机:x86_64服务器,有代码,工具链, strip 程序,用于调试的符号文件 在目标上运行 gdbserver: %
我为 arm 编译了 gdbserver 7.6: cd /gdb-7.6-src/gdb/gdbserver ./configure --target=arm-linux --host=arm-li
我正在尝试使用 gdbserver... 我有一个应用程序,其二进制路径 /user/bin/foo 与 pid 19767 一起运行。 远程启动 gdbserver: gdbserver --re
我有一个 ARM 设备,我想调试它。我的主机是 Linux 12.04,我使用的是 Eclipse。GDBServer 在我的目标设备上运行。 我可以调试单进程应用程序。但是当我想调试包含 pthre
例如!ls将执行ls gdb 本身中有命令,但如何在远程端执行此操作? 应该很简单,但我不明白。 Per documentation类似 target remote | ls或target remot
我正在尝试在 Android (Java/C/C++) 上调试混合代码。我的目标设备是 Vizio 1008。代码在模拟器上运行,我可以使用 GDB 从 Eclipse 调试它。但是,我无法在真实设备
我正在调试在远程目标上的 Linux 环境中运行的嵌入式应用程序。该板唯一可用的接口(interface)是一个串行接口(interface)。现在它在 init 上连接了/bin/sh。我正在连接
我正在尝试使用 gdbserver 进行调试。在我终止主机上的 gdb 客户端后,我看到 gdbserver 仍在监听: Remote side has terminated connection.
我尝试如下远程使用gdbserver进行调试 在目标机器上启动gdbserver $ gdbserver localhost:2000 hello -l 20 -b 10 --enable-targe
我正在使用 Eclipse CDT 和 GNU ARM QEMU 模拟器。 Eclipse 使用 QEMU 上运行的 gdbserver 启动自己的 gdb session 。我还希望能够从 OSX
我试图交叉编译OpenWrt-RTK gdb/gdbserver软件包,我在make menuconfig中选择了gdbserver并执行了make V=s,但我无法编译它,我收到了此错误 ../si
我正在 eclipse CodeSourcery IDE 中调试 C 项目。该项目在 linux-arm 设备中运行,因此我使用 gdbserver 交叉编译和调试它。我的项目由一个主程序和一些共享库
我正在使用 gdbserver 调试远程进程。我可以在 gdbserver 启动并等待输入后将其附加到该进程。 但是,我想在启动时将 gdbserver 附加到该进程。该进程是通过 shell 脚本启
我正在尝试调试远程主机上的 fork 进程,但每次都让 gdbserver 进程在子退出时结束。 尝试在 .gdbinit 中设置“set follow-fork-mode child”,没有帮助。
我在 Netbeans 中使用 gdbserver 插件试图连接到远程调试 session 。但是我收到一个错误:“设备的 ioctl 不合适。”我可以通过从终端启动 gdb 进行远程调试,但我希望能
1) 我通过 gdb myAppName 在远程计算机上启动 GDB 2) 然后我给出 run -p portNumber 3)然后我运行java应用程序并在上述端口上与其连接。 现在,当我尝试通过
我想在arm-Linux开发板上使用gdb调试。编译 gdbserver 时出错。 主机:Ubuntu 11 32 位目标:arm-linux-gcc(gcc版本4.4.3) root@mickeyv
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
当从运行 gdb 的主机发送 step 命令到运行 gdb 服务器的远程目标(通过 TCP/IP 连接)时,我在目标上收到以下错误 ptrace: Input/output error. input_
我有一个程序出现段错误。我需要远程调试它。为此,我正在执行以下操作: 在目标板上: #gdbserver :2345 program 在 x86 主机上: $ arm-linux-gdb -q pro
我是一名优秀的程序员,十分优秀!