WIN32汇编-Radasm下断点调试

来源:互联网 发布:淘宝旗舰店天猫多少钱 编辑:程序博客网 时间:2024/05/20 19:49

Radasm中有下断点功能,但是一到编译的时候出就错,我特别想知道怎么使用这个功能,后来看了一下Radasm的帮助文档,其中有一段关于调试的介绍,文章中说需要include \RadASM\masm\inc\radbg.inc,但如果直接在.asm方件中粘贴这句话编译是无法通过的,因为找不到这个文件,因为我们建立的win32工程是属于\RadASM\masm32目录的,我们必须指定一个完整的路径,在我的电脑上路径应该是D:\Program Files\RadASM\Masm\Inc\radbg.inc,好了include这句话后下断点编译也不会报错了,好像最多支持10个断点,接着要调试程序的话我们只能直接点击红色叹号的运行按钮(或者按快捷键Ctrl+Shift+F5)。出来的结果并不令人满意,仅仅是显示了各个寄存器的值而已,如下图

 我可不是想要这样的结果哦,看来这个调试器并不是非常友好,因为看不到整个源程序的其它代码,仅仅是显示一个简陋的对话框。

我们不就是想要下个断点吗,干嘛要这么费力不讨好?其实我们直接在源代码中需要中断的地方写句int 3就行了,编译运行后用od来调试(快捷键Ctrl+D启动),程序自然会中断到该处,但如果程序中有多处要下断点的话,这样操作会导致根本不知道中断到哪个地方了。针对此种情况,我们完全可以在代码中写些无意义但又不会影响结果的指令,如

mov eax,eax

mov ebx,ebx

nop

nop

push eax

pop eax

然后通过od的查找功能(快捷键Ctrl+S),输入这些命令来定位到程序的某个地方。不同的断点地方写些不同的指令即可。这比int 3指令起码要好一点。