news 2026/4/14 22:04:44

汇编语言全接触-74.用Soft-ICE实现源码级调试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
汇编语言全接触-74.用Soft-ICE实现源码级调试

在 Windows 编程中,Soft-ICE 是一件必不可少的调试工具,但 Windows 程序的编程中有很多的时候是和数据结构和 API 打交道,经过编译以后,原来的 mov stRect.left,eax 之类的代码也就变成了 mov [xxxx],eax,invoke 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 文件中包含调试信息。

/DEBUGTYPE:CV 当然是调试信息要用 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 中,因为这些路径中还有些文件要用到。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/9 11:34:18

AI如何用unplugin-auto-import自动优化前端依赖导入

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Vue3项目,集成unplugin-auto-import插件,配置自动导入Vue相关API(如ref, reactive)、Element Plus组件和自定义工具函数。要…

作者头像 李华
网站建设 2026/4/12 16:34:56

FLEX:1 - AI如何革新前端布局开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个基于FLEX:1的响应式网页布局生成器,能够根据用户输入的内容结构和设备类型,自动生成最优的Flexbox布局代码。要求支持动态调整子元素比例、间距和排…

作者头像 李华
网站建设 2026/4/13 18:00:27

Hunyuan-MT-7B-WEBUI模型权重是否开源?部分公开

Hunyuan-MT-7B-WEBUI 模型权重是否开源?部分公开 在机器翻译领域,一个长期存在的矛盾是:模型能力越强,部署门槛也越高。许多企业在面对高质量翻译需求时,往往陷入两难——用商用API担心数据外泄、成本不可控&#xff1…

作者头像 李华
网站建设 2026/4/11 13:17:42

TAR压缩零基础教程:从入门到常用命令大全

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式命令行工具,引导用户学习TAR命令:1) 分步教学创建/解压tar包;2) 实时演示命令效果;3) 常见问题解答;4) 提…

作者头像 李华
网站建设 2026/4/15 4:40:01

MCP集成Azure OpenAI测试实践(专家级测试方案首次公开)

第一章:MCP集成Azure OpenAI测试实践概述在企业级AI服务部署中,将MCP(Microsoft Cloud Platform)与Azure OpenAI服务进行集成,已成为提升智能化能力的重要路径。该集成不仅支持高可用、可扩展的自然语言处理能力&#…

作者头像 李华
网站建设 2026/4/8 14:40:42

停车位占用状态识别:智慧停车管理系统核心

停车位占用状态识别:智慧停车管理系统核心 引言:从城市停车难题到AI视觉解决方案 随着城市化进程加速,机动车保有量持续攀升,"停车难"已成为困扰城市居民的普遍问题。传统停车场依赖人工巡检或地磁传感器判断车位状态&a…

作者头像 李华