同样,在W" name="description" />

.NET应用程序调试—原理、工具、方法(6)

来源:未知 责任编辑:责任编辑 发表时间:2015-05-17 16:44 点击:

图12:(ntsd.exe打开调试程序)

wKioL1Q-eiuzuU5jAAOy2BvqdDg189.jpg

同样,在WinDbg中也有一个附加进程的选项,NTSD也是一样,操作起来都比较简单,需要注意的是当你对进程进行附加时要清楚此进程是多少位的,然后你需要选择正确的调试器进行调试。

4.2.不中断调试或者称事后调试(对Dump文件进行调试)

在不能够对被调试程序直接调试时我们就需要此程序的进程镜像文件,此镜像文件就是进程在某一个时刻的快照,通过分析这个快照,我们也是可以定位出问题的。首先我们需要使用适当的工具来获取进程的dump文件,操作系统本身的任务管理器就有这个功能,dump文件的存放位置默认在用户信息临时文件下面,比如:XXX\Users\Administrator\AppData\Local\Temp,获取完dump文件后任务管理器会有提示路径的。

图13:(使用任务管理器获取dump文件)wKioL1Q-ej3ygrC9AAMfx0jdh2w880.jpg

图14:

wKiom1Q-eheRC3bJAAEB3UbiL2A357.jpg

使用任务管理器获取dump文件固然很方便,但是有一个问题就是如果当前机器是64位的,并且你的进程是以32位方式运行的,那么此时你获取出来的dump文件是64位的,当你通过32位的调试器无法进行分析,甚至会有各种其他的问题,这些问题就是因为获取dump文件的机器环境和你预想的不一致。这个时候我们希望能够通过很明了的方式来获取dump文件,就是通过调试器来获取dump文件。

通过调试器来获取dump文件有很多好处,可以设置很多选项,包括只获取进程的哪部分镜像数据等。

先通过tlist.exe查看所有进程列表,会有一个进程ID号,有了ID号才能进行获取。

图15:(tlist、ntsd 进入到指定进程中)

wKioL1Q-emGRi_KsAALXACgYD8A910.jpg

进入到ntsd调试器中,然后使用.dump/mf d:\order.dmp 命令获取dump文件到D盘。

图16:(使用NTSD.exe获取dump文件)

wKioL1Q-em-S6VZWAACvKV_0QBs027.jpg

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 用C#制作屏幕捕获程序
  • 遍历ArrayList易犯错误
  • 使用C#编写LED样式时钟控件
  • C#对XML操作:一个处理XML文件的类(1)
  • 怎样用C#实现完整文档打印功能
  • DataList嵌套问题 如何删除内层子DataList的记录
  • 使用c#+(datagrid控件)编辑xml文件
  • C#生成CHM文件(应用篇)之代码库编辑器(5)【总结、程序、源代码】
  • .NET简谈自定义事务资源管理器
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索 - 移动版 - 返回顶部
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1