https://blog.csdn.net/chenlycly/article/details/124272585
将10多年C++开发实践中常用的功能,以高质量的代码展现出来。这些常用的高质量规范代码,可以直接拿到项目中使用,能有效地解决软件开发过程中遇到的题目。 专栏5:
C++ 软件开发从入门到醒目(专栏文章,持续更新中...)
从函数调用堆栈的最后一帧调用的函数来看,程序的瓦解是发生在TestDlg.exe文件模块中,不是其他的dll模块。显示的函数地址是相对TestDlg.exe文件模块起始地址的偏移,为啥看不到模块中具体函数名称呢?那是因为Windbg找不到TestDlg.exe对应的pdb文件,pdb文件中包含对应的二进制文件中的函数名称及变量等信息,Windbg加载到pdb文件才气显示完备的函数名。
如何才气找到TestDlg.exe文件对应的pdb文件?我们可以通过查看TestDlg.exe文件的时间戳找到文件的编译时间,通过编译时间找到文件对应的pdb文件。在Windbg中输入lm vm TestDlg*下令,可以查看到TestDlg.exe文件的具体信息,其中就包含文件的时间戳:(当前的lm下令中使用m通配符参数,所以在TestDlg背面加上了*号)