[英]GDB Python API: Create hardware breakpoint object
gdb python API 定義了gdb.BP_BREAKPOINT
標志以在創建gdb.Breakpoint
對象時使用,但似乎沒有允許設置硬件斷點的標志? 我錯過了什么嗎?
我想創建一個gdb.Breakpoint
對象,以便我可以覆蓋stop
方法並對觸發的斷點做出反應。 據我所知,沒有其他方法可以做到這一點。
有趣的是,如果我以“正常”方式設置斷點(例如, break *0x400123
),則gdb.breakpoints()
返回一個對象。 但是,如果我以相同的方式設置硬件斷點( hbreak *0x400123
),則不會返回任何對象。 這似乎表明python API無法直接訪問/操作硬件斷點?
在 Fedora 31 上使用 GDB 8.3.50.20190824-30.fc31。
還沒有找到使用gdb.Breakpoint
做到這一點的gdb.Breakpoint
,但我有一個解決方法。
offset = 0x400123
gdb.execute("hbreak *" + hex(offset))
while True:
gdb.execute("continue")
value = int(gdb.parse_and_eval("$pc"))
if value == offset:
# respond to hardware breakpoint here
else:
# something else happened??
它並不完美,但滿足我目前的需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.