我目前正在学习调试器。我读到了调试器有软件断点(显然这是最常用的断点)。它们的工作原理是将操作码的第一个字节替换为Int 3(操作码0xcc)。
我读到程序的文本(/代码)段是只读的(如果这个段不需要是只读的,那么什么阻止代码修改自己的指令,自修改代码)。我的问题是,当它是只读的时,调试器如何修改指令。我是否漏掉了什么。对此的任何评论或指向理论的指针都将不胜感激。
谢谢。
我目前正在学习调试器。我读到了调试器有软件断点(显然这是最常用的断点)。它们的工作原理是将操作码的第一个字节替换为Int 3(操作码0xcc)。
我读到程序的文本(/代码)段是只读的(如果这个段不需要是只读的,那么什么阻止代码修改自己的指令,自修改代码)。我的问题是,当它是只读的时,调试器如何修改指令。我是否漏掉了什么。对此的任何评论或指向理论的指针都将不胜感激。
谢谢。