我在arm + Linux平台上调试进程时遇到问题:
这是一个使用CAPWAP协议的守护进程,因此它会持续与另一个远程进程通信。当它崩溃时出现分段错误,我通常的调试方法是通过printf
添加一些日志输出,以找到进程崩溃的位置,但效率不高。
还有其他方法可以调试此问题吗?
答案 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)
在这种情况下,有两种调试选项。
使用GDB调试器调试程序。您可以使用GDB在程序中设置断点。
使用Android-ndk调试您的分段错误。这种调试可以提供错误的确切位置。