Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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
Windows 使用StackWalk64减少堆栈_Windows_Stack_Trace_Dbghelp - Fatal编程技术网

Windows 使用StackWalk64减少堆栈

Windows 使用StackWalk64减少堆栈,windows,stack,trace,dbghelp,Windows,Stack,Trace,Dbghelp,我构建了test.exe,它将崩溃并使用MinidumpWriteDump生成.dmp文件,parser.exe用于从该dmp文件读取和打印信息 在parser.exe中,我使用StackWalk64获取该dmp文件中所有线程的所有堆栈跟踪。 但现在我发现我只能得到比VisualStudio更少的堆栈 我已经尝试了在google、stackoverflow、codeproject中找到的所有解决方案,没有任何改变 parser.exe执行以下操作: 符号初始化 MiniTumpReadDumpS

我构建了test.exe,它将崩溃并使用MinidumpWriteDump生成.dmp文件,parser.exe用于从该dmp文件读取和打印信息

在parser.exe中,我使用StackWalk64获取该dmp文件中所有线程的所有堆栈跟踪。 但现在我发现我只能得到比VisualStudio更少的堆栈

我已经尝试了在google、stackoverflow、codeproject中找到的所有解决方案,没有任何改变

parser.exe执行以下操作:

  • 符号初始化
  • MiniTumpReadDumpStream读取所有信息
  • 用于加载.dmp文件中指定的pdb/exe/dll的SymLoadModuleEx&symfindfleinpath
  • 初始化STACKFRAME64并在循环中调用StackWalk64
  • 我想知道如何获得与VisualStudio相同的堆栈计数。 如果需要,我可以在这里粘贴更多代码。
    任何帮助都将不胜感激。

    StackWalk64不够健壮,无法跟踪完整的堆栈跟踪,特别是在经过优化的帧中。(例如,请参见此问题)

    最好的方法是实际使用随提供的调试引擎。以下是几篇博客文章,展示了如何使用调试引擎API:


    谢谢,有用的提示。