Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Microsoft小型转储文件不提供太多信息_C++_Visual Studio_Visual Studio 2012_Crash_Crash Dumps - Fatal编程技术网

C++ Microsoft小型转储文件不提供太多信息

C++ Microsoft小型转储文件不提供太多信息,c++,visual-studio,visual-studio-2012,crash,crash-dumps,C++,Visual Studio,Visual Studio 2012,Crash,Crash Dumps,我正在使用Microsoft Minidump功能,以便分析已发布程序中的崩溃 代码类似于此问题的答案: 通常,当我发生崩溃时,我可以在VisualStudio中打开崩溃转储文件,它会将我带到有问题的源代码行,这使得解决这些问题非常容易 但有时并不那么容易 我有一个崩溃转储文件,无法找到有问题的源代码行。为什么呢?我可以从这个转储文件中获得哪些有用的信息?关于大海捞针有什么建议吗 这就是我正在做的 我通过标记签出此版本的源代码 我将相应的pdb文件复制到与崩溃转储相同的文件夹中-文件为myp

我正在使用Microsoft Minidump功能,以便分析已发布程序中的崩溃

代码类似于此问题的答案:

通常,当我发生崩溃时,我可以在VisualStudio中打开崩溃转储文件,它会将我带到有问题的源代码行,这使得解决这些问题非常容易

但有时并不那么容易

我有一个崩溃转储文件,无法找到有问题的源代码行。为什么呢?我可以从这个转储文件中获得哪些有用的信息?关于大海捞针有什么建议吗

这就是我正在做的

我通过标记签出此版本的源代码

我将相应的pdb文件复制到与崩溃转储相同的文件夹中-文件为myprogram.exe.3140.dmp

然后,我使用用于构建exe的编译器Visual Studio 2012打开崩溃转储

然后我看到一些有用的信息:

上次写入时间2017年10月10日15:28:52 进程架构:x86 异常代码0xC0000005 tread试图读取或写入其没有相应访问权限的虚拟地址的异常信息。 存在堆信息

操作系统版本6.1.7601

模块: myprogram.exe 1.7.41.0 myprogram.dll 1.1.0.27 等

然后单击“仅使用本机调试”

然后,我得到一个对话框:

myprogram.exe.3140.dmp中0x548BFFD5处未处理的异常:0xC0000005:访问冲突执行位置0x548BFFD5

在加载的模块中找不到当前堆栈帧。无法显示此位置的源

我单击“中断”按钮

然后它说框架不在模块中。在加载的模块中找不到当前堆栈帧。无法显示此位置的源

然后单击查看反汇编超链接并查看:

548BFD5


问号是什么??。这是否表明存在悬空指针问题?还有什么?

问号意味着地址0x548BFFD5(您的应用程序正在尝试执行)处的数据没有反汇编成任何有意义的数据

正如您所注意到的,您可能有一个悬空的指针,或者正在尝试执行一个不再存在的对象所指向的函数。或者您正试图执行一个不指向任何内容的函数指针


如果使用符号编译,则可以返回调用堆栈/堆栈跟踪,并查看问题从何处开始。

问号表示地址0x548BFFD5(您的应用程序正在尝试执行)处的数据没有反汇编成任何有意义的数据

正如您所注意到的,您可能有一个悬空的指针,或者正在尝试执行一个不再存在的对象所指向的函数。或者您正试图执行一个不指向任何内容的函数指针


如果使用符号编译,您可以返回调用堆栈/堆栈跟踪,查看问题的起因。

我并不完全奇怪您没有得到任何信息:
访问冲突执行位置0x548BFFD5
我并不完全奇怪您没有得到任何信息:
访问冲突执行位置0x548BFFD5