在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
生成调试信息。
在这种情况下有两种调试选项。
使用GDB调试器来调试你的程序。 您可以使用GDB在您的程序中设置断点。
使用Android-ndk来调试您的分段错误。 这种调试可以提供错误的确切位置。