问题标签 [minidumpwritedump]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
176 浏览

c++ - MiniDumpWriteDump() 进入命名管道,然后 ReadFile()

我想做的是使用 MiniDumpWriteDump() 写入命名管道,然后自己读/写它。如果我直接将内容写入文件,我能够成功执行转储。但是,虽然写入命名管道已成功,但随后的读/写操作并不顺利。我可以从管道中读取所有数据,但是当它被写入时,DMP 文件似乎已损坏。

这是 ReadFile() 逻辑:

这是 WriteFile() 逻辑:

我不确定它是否适用于根本原因,但这里是命名管道设置:

GetLastError() 没有报告任何错误。我错过了一些明显的东西吗?

编辑:添加 MiniDumpWriteDump() 如何响应评论。

更新:我的印象是按块读取以某种方式丢弃数据。为了测试这一点,我增加了命名管道的缓冲区以容纳整个转储,而无需调整大小。我还增加了vecBuffer尺寸以匹配。现在在执行ReadFile()操作时,我收到了整个转储,但它仍然关闭。我仍在使用各种命名管道设置,试图弄清楚需要做什么才能MiniDumpWriteDump()为命名管道提供有效输出。

0 投票
0 回答
83 浏览

c - C/Win32 : Minidumpwritedump 给出一个空文件

我想用 PID 转储进程的内存。下面是我的代码:

我使用 EnableDebugPriv() 因为我需要管理员权限才能正确执行我的程序。

不幸的是,dump.out 文件总是空的,而句柄不为空,我找不到为什么会出现这个问题?(使用 ProcDump 等其他工具,我要转储的进程大约为 75mb)。

编辑:这是 GetLastError() 给出的错误代码:-2147024597

0 投票
0 回答
24 浏览

c++ - win 11 的 minidump 中没有模块信息

我在 win 11 上的应用程序有问题。

由于某种原因,在运行我的应用程序的 win10 版本时,minidump 崩溃文件中没有需要的信息。使用 minidump_dump 工具我发现,在 minidump 文件中,主模块没有 debug_id 和 pdb_file 信息。奇怪的是,在运行win32版本或从Visual Studio运行应用程序并成功crash(对于这个版本crash有需要的信息)后,win10版本的crash变成了需要的信息。这一直持续到重新启动计算机。

我们使用 dbghelp.dll 库,方式如下(这不是全部代码,只是一些操作):

我们在这部分没有任何特定于平台的代码(对于win10和win11,此代码相同),但由于某种原因,在win11上此代码不起作用。我会很高兴有任何关于为什么会发生这种情况的信息和想法。win10 和 win11 的唯一区别是 dbghelp.dll 的版本,但是这个库的代码没有开放,所以我不知道为什么会发生这种情况。

这里 minidump_dump 分析有无所需信息的崩溃:

  • 没有:
  • 和: