.NET 反编译调试神器:dnSpy了解一下

如果客户环境出了问题,而又无法快速定位问题,可以借助dnSpy进行反编译调试跟踪。

可前往dnSpy官网下载或直接从我的分享链接下载(内置包含.NET Framework 4.7.1,若运行提示需要安装,可解压找到.NET Framework 4.7.1-x86-x64-AllOS-ENU.exe安装)。

具体操作步骤如下所示:

  1. 添加系统环境变量,COMPLUS_ZapDisable = 1
  2. 如果需要调试IIS进程,可进入C:\Windows\System32\inetsrv目录执行appcmd list wp 查看对应的应用程序池进程ID
  3. 打开dnspy,调试-->附加到进程-->选择相应的进程ID-->附加
  4. 调试-->窗口-->模块-->搜索要调试的程序集-->双击
  5. 在程序集资源管理器找到要调试的类打开,打断点即可
  6. 右键要修改的类文件-->编辑类/方法-->修改类-->编译
  7. 文件-->保存模块-->选择要保存的路径-->保存
  8. 将保存的重新编译的程序集替换到目标路径即可
  9. 执行iisreset(若为IIS应用)
.NET 反编译调试神器:dnSpy了解一下_第1张图片
配置环境变量
.NET 反编译调试神器:dnSpy了解一下_第2张图片
获取IIS应用程序池进程ID
.NET 反编译调试神器:dnSpy了解一下_第3张图片
附加到进程并打断点
.NET 反编译调试神器:dnSpy了解一下_第4张图片
修改代码,重新编译并保存模块

关于异常捕捉中断
调试过程中出现的异常,dnSpy默认不会自动中断的,需要自行设置异常中断条件。比如:要捕捉NullReferenceException,那么请打开异常设置窗口(调试->窗口->异常设置)进行设置,如下图所示:

.NET 反编译调试神器:dnSpy了解一下_第5张图片
image.png
.NET 反编译调试神器:dnSpy了解一下_第6张图片

你可能感兴趣的:(.NET 反编译调试神器:dnSpy了解一下)