2017-04-13 70 views
-4

就像gdb用watchpoint所做的一樣,我想以編程方式將一個觀察點放在C中。我聽說裝配是可能的。在目前的時間,我只知道像這樣的指令斷點:C - 使裝配觀察點

int i=0; 
while(1){ 
    i++; 
    if(i >= 10) 
     asm("int");/*break*/ 
} 

搜索後,它存在的可能性,使用TUI模式顯示組件的指令,並在我的程序重複使用它,但它不工作。

gdb -q ./prog -tui 
gdb: TUI mode is not supported 

感謝您的幫助。

+0

通過調用'int 3'很容易觸發斷點,但觀察點更加複雜......我相信調試器可以保護段,並且當該段出現頁面錯誤時,它會檢查地址是否與觀看地址。祝你好運,編碼。 –

+3

你的問題是什麼?你的問題是什麼?請花些時間閱讀關於如何提問的問題](http://stackoverflow.com/help/how-to-ask),然後相應地編輯您的問題。 –

+0

您使用的是哪種CPU架構? – bta

回答

0

在x86上,爲了製造硬件觀察點,您需要編程其中一個調試寄存器。你可以開始here