文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。
笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888
1、先抓取一个dump
抓取dump的详细教程可以参考这篇文章:https://editor.csdn.net/md/?articleId=109000020
1.1、写一个异常的程序
int main()
{
int* p = NULL;
*p = 1;
system("pause");
return 0;
}
运行程序并抓取dump文件:
1.2、分析dump文件
分析dump需要程序的xx.pdb文件(这里面记录着程序的各种资源信息),如果没有该文件,将无法使用这边文章中的方式进行分析(后面会介绍抓取快照,可以避免这种情况)。
1、导入抓取的dump文件(截图中因为我已经导入,所以变成灰色的了);当然也可通过将xx.dmp文件拖到Windbg中的方式打开。
2、打开之后的windbg页面显示如下:
3、关联pdb文件:
4、输入分析指令(!analyze -v):整个分析过程需要5-10秒。
如下图会打印出内存出现异常的的位置,这里因为使用了为初始化的指针。
正确写法:
int *p = new int;
*p = 1;
2、笔记跟新记录
时间 | 内容 |
---|---|
2020-10-14 | 创建笔记 |