1. 程式人生 > >eclipse 遠端圖形化除錯嵌入式linux c arm(beaglebone black),解決常見除錯問題

eclipse 遠端圖形化除錯嵌入式linux c arm(beaglebone black),解決常見除錯問題

1.

eclipse遠端除錯的具體配置:

參考該網頁上的視訊http://www.eeboard.com/bbs/thread-15454-1-3.html

(國外以小哥做的,講的非常詳細)

2.

eclipse debug的具體設定說明:

(對於遠端除錯的細節說明,防止不必要的麻煩,尤其注意第4點,其他參考視訊中說明,注意pc上可能不包含部分sharedlib,如果沒有第4步可能會出現一下提示:
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Cannot access memory at address 0x0
warning: Could not load shared library symbols for 7 libraries, e.g. /lib/arm-linux-gnueabi/libpthread.so.0.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?

1.
debug之前需要將程式用到的shared library找出來,一般是從arm板上找,pc上的solib可能版本不符。可以先在開發板程式所在的目錄下使用ldd softwarename的方式確定該software(我建立的軟體叫obexapp)所需要用到的sharedlib,然後將他們拷貝到pc工程目錄下自己建立的sharedlib中,最後在debug configuration中的share lib選項中新增此路徑。另外還需新增自己編譯的sharedlib路徑。
2.debug configuration的具體設定見圖:
  1) main-》c/c++ application:選取應用的存放位置
  2) 選用manual remote debugging launcher,這一步是根據remote debug來的
  3) debugger-》main-》GDB debugger:gdb-multiarch,參考視訊中外國小哥 的方式,當然也可以用交叉編譯工具的gdb
  4) debugger-》shared libraries:最重要的一部,就是要設定好obexapp用到的sharedlib的路徑,圖中,前兩行是我自己編譯生成的solib,最後一行是系統中的一些solib,主要是交叉編譯工具的solib,可以用前面提到的使用ldd命令檢視。
  5) 設定arm板的ip以及pc和arm板的共用埠號。注意在這之前先要在arm板的obexapp目錄下使用如下命令:
      gdbserver 192.168.7.1:12345 obexapp
監聽pc的12345埠。(視訊中有說明)
  6) 按下debug鍵即可進行除錯了(另外如果程式有入口引數可以將引數放在debug設定選項中的引數argument中)。

另外還需注意debug程式之前的編譯過程中需要新增-g選項:CFLAGS          += -g。