WinDbg设置托管进程断点
WinDbg的Live模式调试。.Net 托管代码 ,使用bp,bu,bm无法设置断点,也许是我不会。研究了下,托管代码有自己的命令,!BPMD 模块名 完全限定的方法名
步骤:
1、查找进程PID,用WinDbg,Attach上
2、使用反编译工具(IL),查找需要断点的方法名,需要完全限定名。
3、根据名称,使用!name2ee 也可找到方法的完全限定名。
4、使用!BPMD 模块名 完全限定的方法名 设置断点。这是托管代码设置断点命令。设置完成后,显示Found 1 methods in module xxx 就设置成功。
5、继续执行程序。等待断点进入。进入后,通过!CLRStack -p查看参数即可。
退出,而不结束进程,使用.detach命令
=================另一种方法打入断点,更新日期2017-08-11==================
仅使用WinDbg,不是用反射工具,从外到里,一层层查看。
1、先DumpDomain出来。 !DumpDomain 导出Domain下每个Module
2、然后DumpModule下的所有类。!DumpModule -mt 00007ffdb2d277a0 导出此Module的所有类
3、找到指定类,Dump出所有Method。!DumpMT -MD /d 00007ffdb2d288f8 导出此类的所有方法
4、打断点。!BPMD -md MethodDesc 打入断点,参数为MethodDesc地址
bl 可列出有效断点
bc * 可清除所有断点
bc N 可清除指定断点
WinDbg调试高内存的.Net进程Dump
posted on 2017-08-08 17:20 水手paul2008 阅读(399) 评论(0) 编辑 收藏 举报