2017-04-13 63 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