首頁 > 後端開發 > C++ > 如何使用觀察點監控 GDB 中的變數存取?

如何使用觀察點監控 GDB 中的變數存取?

Linda Hamilton
發布: 2024-12-09 18:44:15
原創
627 人瀏覽過

How Can I Monitor Variable Access in GDB Using Watchpoints?

監視 GDB 中的變數存取

中斷變數存取是偵錯複雜程式的有用技術。 GDB 中的多個觀察點指令可讓您監控變數的讀取或寫入。

watch 寫入時中斷,rwatch 讀取時中斷,以及 awatch 讀取/寫入操作中斷。

記憶體存取觀察點:

您可以使用 rwatch 在記憶體位置設定讀取觀察點。以下指令在位址 0xfeedface 上設定讀取觀察點:

gdb$ rwatch *0xfeedface
登入後複製

但是,您不能在 rwatchawatch 的表達式中使用 GDB 變數。如果您嘗試這樣做,您將收到一條錯誤訊息。相反,請手動展開表達式:

gdb$ print $ebx
 = 0x135700
gdb$ rwatch *0x135700+0xec1a04f
登入後複製

硬體和軟體支援:

觀察點支援取決於硬體或軟體支援。硬體觀察點要快得多。若要檢查您的作業系統是否支援硬體觀察點,請使用show can-use-hw-watchpoints 指令:

gdb$ show can-use-hw-watchpoints
Debugger's willingness to use watchpoint hardware is 1.
登入後複製

如果輸出為1,則硬體觀察點已啟用。

以上是如何使用觀察點監控 GDB 中的變數存取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板