我怎样才能debuggingembedded式过程?

在arm + Linux平台上debugging进程时遇到问题:

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

有没有其他的方法来debugging这个问题?

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

  gdb yourprogram core 

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

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

  gdb --args yourprogram argtoyourprogram 

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

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

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

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