IDebugClient3::WriteDumpFile2 方法 (dbgeng.h)

WriteDumpFile2 方法创建用户模式或内核模式转储文件。

语法

HRESULT WriteDumpFile2(
  [in]           PCSTR DumpFile,
  [in]           ULONG Qualifier,
  [in]           ULONG FormatFlags,
  [in, optional] PCSTR Comment
);

参数

[in] DumpFile

指定要创建的转储文件的名称。 DumpFile 必须包含文件扩展名。 DumpFile 可以包含相对路径或绝对路径;相对路径相对于启动调试器的目录。

[in] Qualifier

指定要创建的转储文件的类型。 有关可能的值,请参阅 DEBUG_DUMP_XXX

[in] FormatFlags

指定用于确定转储文件和 --for user-mode minidumps- 要包含在文件中的信息的格式的标志。 有关详细信息,请参阅“备注”。

[in, optional] Comment

指定要包含在故障转储文件中的注释字符串。 加载转储文件时,此字符串将显示在调试器控制台中。 某些转储文件格式不支持存储注释字符串。

返回值

此方法也可能返回错误值。 有关更多详细信息,请参阅 返回值

返回代码 说明
S_OK
该方法成功。

注解

WriteDumpFile2WriteDumpFileWide 使用 DEBUG_FORMAT_XXX 位标志来确定故障转储文件的格式,对于用户模式 Minidumps,需要包含哪些信息。

以下位标志适用于所有故障转储文件。

说明
DEBUG_FORMAT_WRITE_CAB 将故障转储文件打包到 CAB 文件中。 提供的文件名或文件句柄用于 CAB 文件;在移动到 CAB 文件之前,首先在临时文件中创建故障转储。
DEBUG_FORMAT_CAB_SECONDARY_FILES
在 CAB 文件中包括当前符号和映射图像。
如果未设置DEBUG_FORMAT_WRITE_CAB,则忽略此标志。
DEBUG_FORMAT_NO_OVERWRITE 请勿覆盖现有文件。
 

还可以为用户模式 Minidumps 包含以下位标志。

说明
DEBUG_FORMAT_USER_SMALL_FULL_MEMORY 添加完整内存数据。 将包含目标应用程序拥有的所有可访问提交页面。
DEBUG_FORMAT_USER_SMALL_HANDLE_DATA 添加与目标应用程序关联的句柄的数据。
DEBUG_FORMAT_USER_SMALL_UNLOADED_MODULES 添加卸载的模块信息。 此信息仅在 Windows Server 2003 及更高版本的 Windows 中可用。
DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY 添加间接内存。 包含堆栈或后备存储上指针引用的任何地址的小型内存区域。
DEBUG_FORMAT_USER_SMALL_DATA_SEGMENTS 在可执行映像中添加所有数据段。
DEBUG_FORMAT_USER_SMALL_FILTER_MEMORY 设置为零堆栈上和后盾存储中的所有内存,这对于重新创建堆栈跟踪并不有用。 这可以使微型转储的压缩更高效,并通过删除不必要的信息来提高隐私。
DEBUG_FORMAT_USER_SMALL_FILTER_PATHS 删除模块路径,只保留模块名称。 这可用于通过隐藏可能包含用户名) 的目录结构 (来保护隐私。
DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA (PEB) 和线程环境块 (TEB) 添加进程环境块。 此标志可用于为线程和进程提供 Windows 系统信息。
DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY 添加所有提交的专用读写内存页。
DEBUG_FORMAT_USER_SMALL_NO_OPTIONAL_DATA
防止微型转储中包含隐私敏感数据。 目前,此标志从已添加的 Minidump 数据中排除,因为设置了以下标志:
DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA,
DEBUG_FORMAT_USER_SMALL_FULL_MEMORY,
DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY,
DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY。
DEBUG_FORMAT_USER_SMALL_FULL_MEMORY_INFO 添加所有基本内存信息。 这是 QueryVirtual 方法返回的信息。 包括所有内存的信息,而不仅仅是有效的内存,这允许调试器从 Minidump 重新构造完整的虚拟内存布局。
DEBUG_FORMAT_USER_SMALL_THREAD_INFO 添加其他线程信息,其中包括执行时间、开始时间、退出时间、开始地址和退出状态。
DEBUG_FORMAT_USER_SMALL_CODE_SEGMENTS 使用可执行图像添加所有代码段。
 

有关故障转储文件的详细信息,请参阅 转储文件目标

要求

   
目标平台 桌面
Header dbgeng.h (包括 Dbgeng.h)

请参阅

.dump(创建转储文件)

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

WriteDumpFileWide