博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NTSD(Command Line)调试DMP格式文件
阅读量:2260 次
发布时间:2019-05-09

本文共 1213 字,大约阅读时间需要 4 分钟。

前言:之前介绍了利用VS2005进行Dump文件的调试,功能非常强大。但VS2005是一个大程序,本文将讨论利用NTSD的Command Line 实现Dump 文件的调试。

1、  载入DMP格式文件

利用CMD打开命令行窗口,切换到NTSD所在目录。利用命令载入DMP文件:

ntsd –z dumpfileName –y symbolPath –srcpath sourcecodePath

dumpfileName:DMP格式文件路径

symbolPath:PDB文件路径

sourcecodePath:程序的源代码路径

如图1.1,若载入成功,将弹出一个NTSD窗口,如图1.2。

Load

 

 

 

图1.1 载入DMP格式文件

Ntsd

图1.2 NTSD界面

红色的圈中显示了BUG的原因,函数IsPrefix 存在错误。0x36是错误相对于函数的偏移值。这个错误是一个Access Violation的异常,异常地址为00401036

Note

l  若路径中存在空格,需要用在路径前后加上引号。

l  若提示错误,根据提示查看是否由于dbghelp.dll不存在导致,安装的调试工具包中存在该动态库。

2、  定位与源代码

利用如下命令可以定位错误到源代码中:

lsp  –a 500

lsa  .

第一行命令用于设置显示的源代码行数,第二行命令将错误定位与错误行。如图:

lsp lsa

图1.3 Analysis Result: Line of Source Code Causing Crash

从图中可以看出,第13号是导致程序错误的位置。如果希望看到变量的值,使用命令:

x

若需要详细查看某个变量的值,使用命令:

??  variableName

variable

图1.4 Analysis Result: Value of Variable Causing Crash

 

Module Address of Your Application(显示程序模块地址)

Command:

x *!

Module

1.5 Application Module Information

It shows all the module address in your application.

 

Crash Stack Trace(显示程序调用堆栈)

If you want to trace the stack of application, use this command:

Command:

kb

stack track

1.6 Application Stack Trace

It shows that function main invokes function IsPrefix then application crashes.

For more commands of NTSD, refer to debugger.chm in Microsoft Debugger Tools package.

你可能感兴趣的文章
iPhone应用程序图标 - 精确半径?
查看>>
如何返回上一页
查看>>
循环前增加和后增加之间的区别?
查看>>
如何调用AngularJS指令中定义的方法?
查看>>
onKeyPress与。 onKeyUp和onKeyDown
查看>>
使用AngularJS上传文件
查看>>
URL编码将“&”(&符号)视为“&”HTML实体
查看>>
什么是‘YTowOnt9‘?
查看>>
如何将Swift数组转换为字符串?
查看>>
ubuntu系统下用kazam软件录制的视频不能在windows系统下播放的解决方案
查看>>
confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法
查看>>
springboot获取getBean方法以及ApplicationContext空指针问题解决
查看>>
CLion 控制台输出内容乱码问题的解决方法
查看>>
解决SSH远程执行命令找不到环境变量的问题
查看>>
Eclipse安装SpringBoot插件以及Eclipse无法连接到Eclipse Marketplace的解决方法
查看>>
mysql导出长数字到excel避免显示为科学记数法 解决方法
查看>>
RabbitMQ脑裂问题解决方案调查
查看>>
Mysql系列七:分库分表技术难题之分布式全局唯一id解决方案
查看>>
【插件】jQuery.iviewer----图片浏览(滚动放大缩小问题解决)
查看>>
LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题)
查看>>