2013-03-20 31 views
2

我在arm + Linux平臺上調試進程時遇到問題:如何調試嵌入式過程?

這是一個使用CAPWAP協議的守護進程,因此它會持續與另一個遠程進程通信。當它發生分段錯誤時,我通常的調試方法是通過printf添加一些日誌輸出,以查找進程崩潰的位置,但效率不高。

有沒有其他方法可以調試這個問題?

回答

3

您也可以使core(5)轉儲,然後在該核心使用gdb驗屍以

gdb yourprogram core 

要啓用核心轉儲,您需要調用setrlimit(2)系統調用與RLIMIT_CORE,通常是在一些家長過程(例如與殼牌ulimit

順便說一句,你也可以開始你的程序通過gdb使用

gdb --args yourprogram argtoyourprogram 

不要忘了用gcc -Wall -g來編譯程序。 -Wall選項提供了幾乎所有的警告(非常有用),並且-g產生調試信息。

0

在這種情況下有兩種調試選項。

  1. 使用GDB調試器來調試您的程序。您可以使用GDB在程序中設置斷點。

  2. 使用Android-ndk調試您的分段錯誤。這種調試可以提供錯誤的確切位置。

+1

oriinal海報可能有一個嵌入式Linux在ARM上運行,它不是Android ... – 2013-03-20 06:26:52