2026/5/13 17:58:40
网站建设
项目流程
门户网站系统有哪些平台,wordpress主题超2m,上海专业做网站建设如何做,网站前台的功能模块在 Windows 编程中#xff0c;Soft-ICE 是一件必不可少的调试工具#xff0c;但 Windows 程序的编程中有很多的时候是和数据结构和 API 打交道#xff0c;经过编译以后#xff0c;原来的 mov stRect.left,eax 之类的代码也就变成了 mov [xxxx],eax#xff0c;invoke Updat…在 Windows 编程中Soft-ICE 是一件必不可少的调试工具但 Windows 程序的编程中有很多的时候是和数据结构和 API 打交道经过编译以后原来的 mov stRect.left,eax 之类的代码也就变成了 mov [xxxx],eaxinvoke UpdateWindow,hWnd 之类的语句也就变成了 push [xxxx]/call [xxxxx] 之类的语句如果你不记的源程序了你就根本无法知道你在向什么数据写或者调用什么 API在 C 编程的时候我们都可以进行源代码级别的跟踪调试但在汇编中这可能吗答案是可以的用 Soft-ICE 就可以实现本文讨论使用 Masm 的情况下用 Soft-ICE 实现源码调试具体的实现如下首先在编译的时候要生成带符号信息的 Object 文件这需要打开 ML 程序的两个选项ML /coff /Zi .../coff 告诉编译器产生符号调试格式的 Object 文件。/Zi 使 Object 文件中包括符号调试信息。然后也要设置 Link 文件因为 Soft-ICE 使用 CodeView 格式的调试信息所以 Link 也要包括下面的选项Link /DEBUG /DEBUGTYPE:CV .../DEBUG 选项告诉 Link 在 exe 文件中包含调试信息。/DEBUGTYPECV 当然是调试信息要用 CodeView 格式啦。最后就是如何使用 Soft-ICE 了如果要使用符号调试功能你不能再用 Loader32.exe 程序来装入 exe 文件而是必须用符号转换程序 nmsym使用方法是在命令行中打入 nmsym /translate:source,package,always /source:. /load:execute,break 你的exe文件你可以把它编写成一个 bat 文件如下 nmsym /translate:source,package,always /source:. /load:execute,break %1假定文件名为 debug.bat 然后你就可以用 debug xxx.exe 来享受源代码调试的乐趣了。别的一些必要的设置你必须把 Soft-ICE 的目录和 Masm 的 bin 目录设置到 path 中因为这些路径中还有些文件要用到。