• 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

  • 相关阅读:
    【转】基于 Apache 在本地配置多个虚拟主机
    ubuntu linux下各种格式软件包的安装卸载
    钩子
    静态方法中不能使用 $this
    Redis Sentinel机制与用法说明【转】
    CI 分页类的使用
    MySQL压力测试
    简单配置.htaccess就可以实现的10个功能
    bzoj 3529 数表
    poj2773 Happy 2006
  • 原文地址:https://www.cnblogs.com/wigis/p/7307924.html
Copyright © 2020-2023  润新知