Visual studio 小型转储中不完整的堆栈跟踪 我们添加了代码来在C++ 32位服务中生成一个MIDIDUMP。使用MiniTumpWriteMap成功创建转储文件。当我用Visual Studio 2017打开文件并运行时,我可以看到所有线程,但堆栈跟踪仅包含诸如ntdll.dll和kernel.dll之类的Windows dll。除了以[inline]开头的行之外,没有对模块的引用

Visual studio 小型转储中不完整的堆栈跟踪 我们添加了代码来在C++ 32位服务中生成一个MIDIDUMP。使用MiniTumpWriteMap成功创建转储文件。当我用Visual Studio 2017打开文件并运行时,我可以看到所有线程,但堆栈跟踪仅包含诸如ntdll.dll和kernel.dll之类的Windows dll。除了以[inline]开头的行之外,没有对模块的引用,visual-studio,visual-c++,visual-studio-2017,mfc,minidump,Visual Studio,Visual C++,Visual Studio 2017,Mfc,Minidump,异常指针来自我们的异常处理代码,使用::SetUnhandledExceptionFilter。我们有第二个文件,它只是一个崩溃日志,或者是使用相同的异常指针对象发生异常的线程,并且它有完整的堆栈 注意:这是较旧的代码,其中一些代码使用MFC。随着时间的推移,我们将逐步淘汰这种做法 Visual Studio是否可以查看.pdb文件(以及可执行文件)?请说明如何生成转储文件。有很多旋钮可以转动,其中一些会导致VisualStudio无法理解它们。此外,请尝试在WinDbg中打开迷你转储文件,以查

异常指针来自我们的异常处理代码,使用::SetUnhandledExceptionFilter。我们有第二个文件,它只是一个崩溃日志,或者是使用相同的异常指针对象发生异常的线程,并且它有完整的堆栈


注意:这是较旧的代码,其中一些代码使用MFC。随着时间的推移,我们将逐步淘汰这种做法

Visual Studio是否可以查看.pdb文件(以及可执行文件)?请说明如何生成转储文件。有很多旋钮可以转动,其中一些会导致VisualStudio无法理解它们。此外,请尝试在WinDbg中打开迷你转储文件,以查看这是否与您的代码或Visual Studio有关。Visual Studio可以查看二进制文件和PDB文件。为了解决这个问题,我将导致访问冲突异常,并将字符串复制到空指针。我们最终实现了本文中的解决方案。我们的代码几乎相同,只是我尝试了各种转储标志组合。有趣的是,我找到了一个旧的dbghelp.dll和lib文件(版本5),并且在不更改任何代码的情况下得到了一个正确的堆栈转储。出于调试目的,我们编写的服务也作为标准的EXE运行。当我以标准EXE运行时,我会得到完整的堆栈跟踪和源代码。所以这似乎是一件很重要的事情。我们的服务在“本地系统”下运行,默认登录。我尝试了其他用户帐户,得到了同样丢失的堆栈和源代码。你知道该如何配置这些服务吗?