因為目前我的環境都需要用 remote debugger,所以就順道帶過。
安裝 pyclewn
請先在官網上抓 pyclewn*.tar.gz 後,解壓縮,再用
sudo python setup.py install
安裝即可,如要將 vim plugin 安裝到特定資料匣可在 vimdir 的環境變數
sudo vimdir=/home/dorowu/src/gdb/pyclewn-vim/ python setup.py install
跑跑跑...
1. 在 target 上使用 gdbserver 執行 ./Boxee 並在 port 1234 等待 gdb 連線
# gdbserver 0.0.0.0:1234 ./Boxee Process ./Boxee created; pid = 9787 Listening on port 1234
2. 在 host 上的 gvim 裡 gvim
:Pyclewn " 開啟 pyclewn :C target remote 172.16.5.8:1234 " 連線到 gdbserver,172.16.5.8 為 target ip :C symbol-file ./Boxee " 載入 symbol file :C b main " 在 main 函式設斷點 :C continue " 讓程式繼續執行
各位可以發現若要執行 gdb command 可直接用 prefix C 後接 gdb command 即可。
3. pyclewn 提供了一些快速鍵,要使用這些快速鍵時請先 :Cmapkyes。取消快速鍵為 :Cunmapkeys
CTRL-Z send an interrupt to gdb and the program it is running (unix only) B info breakpoints L info locals A info args S step CTRL-N next: next source line, skipping all function calls F finish R run Q quit C continue W where X foldvar CTRL-U up: go up one frame CTRL-D down: go down one frame cursor position: ~ CTRL-B set a breakpoint on the line where the cursor is located CTRL-E clear all breakpoints on the line where the cursor is located mouse pointer position: ~ CTRL-P print the value of the variable defined by the mouse pointer position CTRL-X print the value that is referenced by the address whose value is that of the variable defined by the mouse pointer position
4. 關閉 pyclewn 請用 :nbclose
5. 其它功能可參考 [官方文件]
Screenshot
下圖顯示了 pyclewn 的一些功能,像是
1. 滑鼠指到的變數會查詢內容
2. 你會有一個 gdb 視窗 (但是你不能直接編輯,請用 :Cgdbcommand)
3. 你的 QuickFix 會列出所有的中斷點