wdbg 常用命令 备忘

  以前也用过windbg,没发现多好用,今天才发现没有pdb也能看到出错的module,今天研究了下记录下常用的命令吧。

     (ps:设置ms符号表的方法,在file->Symbol file path弹出框中输入如下内容:SRV*E:\Projects\windows_symbols*http://msdl.microsoft.com/download/symbols  意思是把ms的系统dll的符号表下载到E:\Projects\windows_symbols)

     


      lm -z c:\myapp.dmp 命令行打开故障转储文件(ps:其实可以通过菜单项选文件,老土的命令行)

     .reload 重新加载符号表

     !analyze -v 这条命令分析故障转储里的异常信息,确定异常发生的位置,调用栈,并显示详细的报告

     .dump c:\test.dmp 调试程序的时候出现崩溃手动存储dump文件

  lm   列出所有模块 lm   m k*   显示已经加载的,以k开头的模块(模块太多的时候好用)

     lm vm xxx  如果只有dump不知道对应的版本好可以使用该命令查看某个模块对应的版本号

     kb     列出当前线程的栈信息

     ~*kb 列出所有线程的栈信息

  kf   列出当前线程的调用栈中函数在栈中占用的空间大小,可以用于调试栈溢出的问题根源

     ~*kf 列出所有线程的调用栈中函数在栈中占用的空间大小,可以用于调试栈溢出的问题根源

     runaway 在调试程序过程中使用该命令可以查看到程序的函数调用时间,来解决程序cpu占用很高的问题根源

     q 退出调试

     .kill 杀死调试进程
     .restart 重新调试

     | 显示进程
  ~显示线程

      bp funname 让程序在某个函数名的地方断点 

  .symopt+0x40 设置强制加载不是完全匹配的pdb 然后.reload


     

     

posted @ 2012-03-31 15:56  特米尼德  阅读(631)  评论(0编辑  收藏  举报