标题: Net 高级调试之十:轻量级代码生成的调试 [打印本页] 作者: 南七星之家 时间: 2024-1-3 15:33 标题: Net 高级调试之十:轻量级代码生成的调试 一、简介
今天是《Net 高级调试》的第十篇文章。说起来,高级调试,调试的内容还是挺多的,技巧也不少,但是,要想做一个合格的高级调试人员,还需要掌握如何调试动态生成的IL代码。今天要探讨的高级调试的技巧是如何调试通过 Emit 动态生成 IL 代码。可能有人会问,我们不是编写 C# 代码,或者是 VB.Net 代码吗?怎么还要动态生成 IL 代码,这些工作不是编译器做的吗?当然,一般情况是这样的,但是,当我们编写一些高性能的框架的时候,使用 IL 代码编写也是常事。既然也可以直接使用 IL 编写代码,那对它的调试也是少不了的,调试机会虽然很少,具有这个本领,等遇到这样的问题,就不至于慌乱了,俗话说的好:艺多不压身。当然了,第一次看视频或者看书,是很迷糊的,不知道如何操作,还是那句老话,一遍不行,那就再来一遍,还不行,那就再来一遍,俗话说的好,书读千遍,其意自现。
如果在没有说明的情况下,所有代码的测试环境都是 Net Framewok 4.8,但是,有时候为了查看源码,可能需要使用 Net Core 的项目,我会在项目章节里进行说明。好了,废话不多说,开始我们今天的调试工作。
调试环境我需要进行说明,以防大家不清楚,具体情况我已经罗列出来。 操作系统:Windows Professional 10 调试工具:Windbg Preview(可以去Microsoft Store 去下载) 开发工具:Visual Studio 2022 Net 版本:Net Framework 4.8 CoreCLR源码:源码下载
2 *** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Xml\040fa6ee0be6d987f3e8edf9010ce68a\System.Xml.ni.dll
3 *** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Core\44e36f78b5e2f34aba2d7b5667796954\System.Core.ni.dll