C 如何调试嵌入式进程?
我在arm+Linux平台上调试进程时遇到问题: 这是一个使用CAPWAP协议的守护进程,因此它会持续与另一个远程进程通信。当它因分段错误而崩溃时,我通常的调试方法是通过C 如何调试嵌入式进程?,c,linux,debugging,embedded,C,Linux,Debugging,Embedded,我在arm+Linux平台上调试进程时遇到问题: 这是一个使用CAPWAP协议的守护进程,因此它会持续与另一个远程进程通信。当它因分段错误而崩溃时,我通常的调试方法是通过printf添加一些日志输出,以查找进程崩溃的位置,但效率不高 是否有其他方法调试此问题?在这种情况下,有两种调试选项 使用GDB调试器调试您的程序。您可以使用GDB在程序中设置断点 使用Android ndk调试分段错误。这种调试可以提供错误的确切位置 您还可以启用转储,然后在该内核上使用gdbpost-mortem gd
printf
添加一些日志输出,以查找进程崩溃的位置,但效率不高
是否有其他方法调试此问题?在这种情况下,有两种调试选项
gdb
post-mortem
gdb yourprogram core
要启用核心转储,您需要使用RLIMIT_core
调用系统调用,通常在某些父进程中(例如,使用ulimit
的shell)
顺便说一句,您也可以通过gdb
使用
gdb --args yourprogram argtoyourprogram
别忘了用
gcc-Wall-g
编译程序。-Wall
选项提供几乎所有的警告(非常有用),而-g
生成调试信息。原始海报可能有一个嵌入式Linux在ARM上运行,而不是Android。。。