dnSpy-反编译调试神器

dnSpy 是用于 .NET 调试的最有用的工具之一。它是一个很好的反编译器。但是它的主要用途是作为调试器。dnSpy允许你调试任何 .NET程序,而无需考虑符号或者源代码。

该工具的外观和感觉类似于Visual Studio。当你开始调试没有符号或者源代码的.NET进程时,dnSpy将向你显示反编译的代码。现在,这里有个魔术:你可以在反编译的代码本上中放置断点。遇到这些断点时,你将看到局部变量,线程,调用堆栈,并具有完整的调试经验。这使dnSpy成为调试第三方代码和调试生产环境的首选工具。

下载地址:https://github.com/dnSpy/dnSpy/releases

 

使用dnSpy调试webapi项目

将上面准备好的webapi项目生成一下。

3.1 使用dnSpy打开生成的dll文件

如下图所示:

3.2 找到dll文件的main方法,打个断点,点击调试:

点击确定后,观察调试窗口:和visual studio中的太像了:

接着,我们就可以调试进入aspnetcore的源码了:

后面,可以尽情调试aspnetcore源码了。。。

相关推荐:

如何在Python中自定义NumPy的打印格式以方便调试?

np.set_printoptions()可直接控制NumPy数组显示格式;默认格式因小数位不一致、科学计数法混用及自动截断而影响调试效率;关键参数需协同设置,如precision控制有效位数、suppress禁用科学计数法、threshold避免省略、linewidth防换行混乱、floatmod...

如何在Python生产环境下调试异步死锁与任务阻塞问题?

生产环境禁用asyncio.run(),须手动管理事件循环并捕获未完成任务;asyncio.Lock必须加超时;create_task()后需显式跟踪等待;连接池耗尽等资源问题亦会导致无日志卡死。 asyncio.run()在生产环境直接调用会掩盖死锁信号 生产环境不能用asyncio.run()启...

如何在Python中测试多线程并发安全性_利用pytest结合threading模块调试

pytest测多线程安全会“测不准”是因为其单线程执行机制导致测试函数返回即判定完成,后台线程可能未结束;必须用join显式同步、Event/Lock制造竞态、捕获线程异常并共享被测对象。 为什么直接用pytest测多线程安全会“测不准” 因为pytest默认是单线程执行测试函数,即使你在测试里手动...

如何在 VBA 中调用 Shell 执行 Python 脚本时进行逐行调试

本文介绍在vba通过shell启动python脚本时,如何启用python内置调试器(pdb)实现逐行执行与断点排查,解决跨环境运行异常却难以定位的问题。 本文介绍在vba通过shell启动python脚本时,如何启用python内置调试器(pdb)实现逐行执行与断点排查,解决跨环境运行异常却难以定...

如何在VBA调用Shell执行Python脚本时进行逐行调试

本文介绍在vba中通过shell启动python脚本时,如何启用python内置调试器(pdb)实现命令行下逐行执行与断点调试,解决跨环境运行异常却无法定位问题的痛点。 本文介绍在vba中通过shell启动python脚本时,如何启用python内置调试器(pdb)实现命令行下逐行执行与断点调试,解...