-
您可以使用 gdbserver 遠端除錯目標裝置上的程式。
gdbserver 的基本用法如下:
在這種情況下,gdbserver 偵聽埠號 1234 並等待客戶端連線。 皇室麻煩。
然後,您可以除錯目標裝置的程式。
當我第一次開始使用 gdbserver 時,我遇到了以下問題:
問題的核心在於,手機上執行的 gdbserver 配置為 arm 架構(arm-eabi-linux),而 PC 上執行的 gdb 配置為 x86 64 架構。
檢視 gdbserver 的版本
您可以看到目標裝置的 gdbserver 是針對該體系結構的arm-eabi-linux
我電腦上 gdb 的架構是"x86_64-unknown-linux-gnu"
於是,出現了上述問題。
解像度
確保 gdbserver 和 gdb 配置的架構一致。 在PC上安裝ARM架構配置的GDB工具。
gdb:the gnu debugger for the arm eabi (bare-metal) target
archlinux 的解決方法是安裝 arm-none-eabi-gdb
然後使用 arm-none-eabi-gdb 連線到 gdbserver。 巨集觀拆遷激烈。
-
命令如下1. 對於向應用程式新增引數進行除錯的方法:
它需要像這樣使用:
gdb) r -p1 -p2
或者在執行 run 命令之前使用 set args 命令:
gdb) set args p1 p2
這可以使用 show args 命令進行檢視。
2. 新增斷點:
breakbreak
break +offset
break -offset
在當前行號之前或之後的偏移線處停止。 中斷檔名:linenum 停在源檔名的 linenum 行處。
break filename:函式在源檔名的函式函式的條目處停止。
GDB:用於 Unix 和類 Unix 的除錯工具。 如果在UNIX平台下做軟體,GDB除錯工具相比VC和Z的優勢在於它具有修復網路斷點、恢復鏈路等功能,並且比BCB的圖形偵錯程式具有更強大的功能。
2009 年 12 月 29 日,程式除錯工具 GDB 發布,新版本修復了版本中一些可能導致 GDB 除錯過程中斷的嚴重堆疊溢位 bug,修復了在 FreeBSD 和 IR 系統下無法編譯的問題,增加了對 thumb2 除錯的支援,並修復了一些其他小錯誤。
-
gdb debug 命令如下:
1. 啟動 GDB
GDB 現在可以與 GDB 互動。
2. 啟動 GDB 並在分屏上顯示源。
gdb -tui
這樣,它就被使用了'-tui'選項,啟動時可以直接將螢幕分成兩部分,顯示源**,這比使用列表要方便得多。 在這種情況下,您可以使用向上和向下箭頭鍵檢視源**,如果要在命令列上使用向上和向下鍵,請使用 [Ctrl]n 和 [Ctrl]P。
這樣,應用可執行檔案是在啟動 gdb 後直接載入的,需要注意的是,載入的應用在編譯時必須有乙個 gdb 除錯選項,例如'gcc -g app '注意,如果程式的源**被修改了,但是沒有編譯,那麼修改後的源**會顯示在gdb中,但執行的是修改前的程式,這樣會造成跟蹤的混淆。
4.啟動程式後,使用gdb進行除錯。
gdb 這裡是程式的可執行檔案名稱,是要除錯的程式的 PID如果程式是服務程式,則可以指定執行服務程式的程序將自動附加它並對其進行除錯。 應在 path 環境變數中搜尋程式。
5. 啟動程式後,啟動gdb除錯。
gdb 這裡,程式是乙個服務程式,所以可以指定服務程式執行時的程序 ID,也就是要除錯的程式的 pid這個 gdb 附加到程式上,但還看不到源,可以使用 file 命令來指示顯示源的可執行檔案。
了解如何嵌入:
1.C語言是所有程式語言中最強的,微控制器、DSP和類似ARM的各種晶元的程式設計都可以用C語言完成),所以一定非常熟練。 >>>More