22得票3回答
如何使用CaptureStackBackTrace来捕获异常堆栈而非调用堆栈?

我标记了以下代码:#include "stdafx.h" #include <process.h> #include <iostream> #include <Windows.h> #include <dbghelp.h> ...

21得票5回答
为什么Minidumps无法提供良好的调用堆栈?

多年来,我在许多游戏项目中都使用了minidumps,在这些项目中,它们似乎有约50%的机会具有有效的调用堆栈。那么,我该怎么办才能使它们具有更好的调用堆栈呢? 我尝试将最新的dbghelp.dll放入exe目录中,这似乎对一些情况有所帮助。 使用Visual Studio 2008或20...

15得票3回答
捕获R6025纯虚函数调用

我目前使用 SetUnhandledExceptionFilter 捕获未处理异常的 MiniDump,但有时会出现“R6025:纯虚函数”错误。 我知道什么是纯虚函数调用,只是想知道是否可能在此时捕获它们,以便在那一点创建一个 MiniDump。

11得票2回答
DbgHelp.dll是否内置于Windows中?我能否依赖它一直存在?

我使用Jochen Kalmbach的CodeProject StackWalker类来在我的DLL中发生异常时生成堆栈跟踪。 它依赖于DbgHelp.dll DbgHelp.dll是否内置于Windows Vista、WS2008、Windows 7中? 我知道Windows调试工具来...

10得票1回答
DLL中的未解决符号错误

背景介绍:我正在将一个中等规模的Linux代码库(编译成一个巨大的.so文件)移植到x64 Windows(编译成一个.dll文件)时遇到了链接问题。 作为最小化的测试用例,如果我只从以下文件创建Visual Studio项目: #include <Windows.h> #in...

10得票3回答
如何使用SymLoadModuleEx加载PDB文件?

我正在尝试调用 SymLoadModuleEx 从PDB文件中加载符号,然后使用 SymFromAddr 从该PDB查找符号。但是,我无法确定要传递给参数 BaseOfDll 和 DllSize 的值 - 文档明确表示在加载PDB文件时,这些参数不能为0,而且试图传递0会导致它失败,并显示 E...

9得票1回答
如何在 EExternal 异常期间获取 EXCEPTION_POINTERS?

我应该如何获取“EXCEPTION_POINTERS”,即同时包含以下两个内容的数据: PEXCEPTION_RECORD PCONTEXT 在出现EExternal异常时? 背景 当Windows抛出异常时,它会传递一个PEXCEPTION_POINTERS指针,指向异常信息。...

9得票2回答
如何从迷你转储中提取堆栈跟踪?

我有一堆通过MiniDumpWriteDump记录应用程序运行时生成的小型转储文件。这些小型转储文件是在一个与我的开发机器不同的操作系统版本上创建的。 现在我正在尝试编写一个程序,使用dbghelp.dll从小型转储文件中提取堆栈跟踪。我遍历MINIDUMP_MODULE_LIST并调用Sy...

7得票3回答
如何在Windows上获取堆栈跟踪而不使用dbghelp.dll?

如何在Windows上获取地址的堆栈跟踪而不使用dbghelp.dll? 我不需要知道与地址相关的符号或函数名称,我只想要地址列表--类似于 *nix系统的回溯。 谢谢!

7得票2回答
列出一个动态链接库(DLL)的导出函数

我在寻找一种(C++/Windows下的)方法,可以使用dbgHelp列出一个DLL的导出函数(甚至是未导出的方法)。请问有谁知道该如何操作?