監視 GDB 中的變數存取
中斷變數存取是偵錯複雜程式的有用技術。 GDB 中的多個觀察點指令可讓您監控變數的讀取或寫入。
watch 寫入時中斷,rwatch 讀取時中斷,以及 awatch 讀取/寫入操作中斷。
記憶體存取觀察點:
您可以使用 rwatch 在記憶體位置設定讀取觀察點。以下指令在位址 0xfeedface 上設定讀取觀察點:
gdb$ rwatch *0xfeedface
但是,您不能在 rwatch 和 awatch 的表達式中使用 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中文網其他相關文章!