zoukankan      html  css  js  c++  java
  • 整理一些平时调试.NET Application使用WinDbg + SOS的常用命令

    1、加载调试扩展sos.dll,对应路径由CLR版本决定(比如:v2.0.50727、v4.0.30319)

    .load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.dll

    2、显示当前托管堆栈,显示非托管用kb

    !clrstack
    !clrstack -a
    kb

    3、显示托管线程

    !threads
    !threads -live

    4、显示所有线程下托管调用堆栈

    ~* e !clrstack

    5、设置断点

    !bpmd ConsoleApplication1.exe ConsoleApplication1.Program.Main

    6、查看当前托管调用堆栈对象实例列表

    !dumpstackobjects

    7、线程切换,用!threads查看线程列表,使用TheadId切换,默认WinDbg为调试线程

    ~0 s

    8、显示已加载模块版本列表

    lmv

    9、显示Module、Assembly、MethodTable、EEClass相关信息

    !name2ee ConsoleApplication1.exe ConsoleApplication1.Program

    10、显示EEClass的具体定义(包括mdToken、Method Table),通过!name2ee获取对应的EEClass值

    !dumpclass 000007fe96e1d9b0

    11、显示具体某个类型实例

    !do 00000003ffe933d0

    12、显示线程的cpu使用时间(用户模式、内核模式)

    !runaway

    13、显示托管堆对象统计,!dumpheap有多个参数对返回结果进行筛选

    !dumpheap -min 50
    !dumpheap -type System.Data.DataTable

    14、显示数组

    !da 0000000140b83258
    !da -start 0 -length 30 -details 0000000140b83258

     15、停留在指定类型异常

    !StopOnException System.IO.FileNotFoundException

    SOS.dll => http://msdn.microsoft.com/en-us/library/bb190764.aspx

    Common WinDbg Commands => http://www.windbg.info/doc/1-common-cmds.html

  • 相关阅读:
    sqlserver添加表、字段注释
    SQL语句增加字段、修改字段、修改类型、修改默认值
    端口概念
    删除数据库数据
    转移数据库表数据
    优化网站
    提高SQL查询效率
    相关方法扩展
    SQL空和NULL的区别
    C#分布式缓存Couchbase使用
  • 原文地址:https://www.cnblogs.com/junchu25/p/2767207.html
Copyright © 2011-2022 走看看