2

我在 arm + Linux 平台上调试进程时遇到问题:

这是一个使用 CAPWAP 协议的守护进程,因此它不断地与另一个远程进程通信。当它因分段错误而崩溃时,我通常的调试方法是通过添加一些日志输出printf,以查找进程崩溃的位置,但这不是很有效。

有没有其他方法可以调试这个问题?

4

2 回答 2

3

您还可以启用core(5)转储,然后gdb在该核心上使用 post-mortem

  gdb yourprogram core

要启用核心转储,您需要使用 调用setrlimit(2)系统调用RLIMIT_CORE,通常在某些父进程中(例如带有 的 shell ulimit

顺便说一句,你也可以通过gdb使用启动你的程序

  gdb --args yourprogram argtoyourprogram

不要忘记用gcc -Wall -g. 这些-Wall选项提供几乎所有警告(非常有用),并-g产生调试信息。

于 2013-03-20T06:25:57.287 回答
0

在这种情况下,有两个调试选项。

  1. 使用 GDB 调试器调试您的程序。您可以使用 GDB 在程序中设置断点。

  2. 使用 Android-ndk 调试您的分段错误。这种调试可以提供错误的确切位置。

于 2013-03-20T03:57:07.153 回答