2013年8月3日 星期六

Remote Debug with GDB

今天在追 code 的時候,突然想把遺忘多年的 GDB 再 build 出來,遠端 debug 一下 embedded system 上的 code。廢話少說,進入步驟
1. 和 local debug 當然不一樣,我原本以為要 build 一個再 target device 上的 gdb 命令,NO !!! 教學上說,要 build 一個 gdbserver

2. gdb server 在哪裡呢?在 toolchain 裡面,所以需要重新把 toolchain 編譯出來,同時啟用 toolchain 的 gdb 選項

3. Build 出來 toolchain 以後,多了一個 gdb 目錄,裡面有 build 出來的 gdb(提供給 PC 上使用),還有一個 gdbserver 目錄,裡面有裡面有 gdbserver 命令,是要放在 remote target 上面的 ---- 也就是說,如果沒有 vender 的 toolchain source build,只有 build 好的 toolchain 的話,還是不能用

4. 把gdbserver 放到 target device 上,參考教程,執行
gdbserver :51234 command_to_be_debug

5. 用剛剛build 的,toolchain 裡面的 gdb,執行以後,出現gdb的 prompt
 gdb)

6. 執行 target remote target_device_ip:51234

7. 用 load-symbol command_to_be_debug ,這樣就可以把 symbol load 進來

8. 可以設 break point 了,萬歲

沒有留言: