如何调试嵌入式进程?

时间:2013-03-20 03:44:40

标签: c linux debugging embedded

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

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

还有其他方法可以调试此问题吗?

2 个答案:

答案 0 :(得分:3)

您还可以启用core(5)转储,然后使用{/ 1}}验证

gdb

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

顺便说一下,您也可以使用

通过ulimit启动程序
gdb

不要忘记使用 gdb --args yourprogram argtoyourprogram 编译您的程序。 gcc -Wall -g选项提供几乎所有警告(非常有用),-Wall生成调试信息。

答案 1 :(得分:0)

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

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

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