问题标签 [procdump]

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 回答
114 浏览

.net - 使用 procdump 监听所有异常不起作用

我想procdump监听所有异常(无需指定进程名称或 ID)。

此处给出的示例中,我认为使用以下内容应该可以:

...但是虽然我收到以下消息:

...当某个进程发生异常时,没有任何东西被转储。

以下 .NET 代码有意抛出异常:

编译它并运行,要么ProcdumpTest立即ProcdumpTest false抛出异常,要么ProcdumpTest true等待按键抛出。

0 投票
1 回答
78 浏览

c++ - 如何在 Azure DevOps CI/CD 管道的 Catch2 C++ 测试中启用故障转储?

我正在为 Windows 开发 C++ 软件产品。我使用 Catch2 框架为它编写了测试。它们在 Azure Dev Ops (ADO) 的 CI/CD 管道中实现自动化。当我的代码发生崩溃(例如未处理的异常)时,我想做的是在此 ADO 管道中自动创建并保存崩溃转储(.dmp 文件)。我在 Catch2 框架中看不到任何允许故障转储收集的内容。我在别处使用工具 procdump.exe 来创建故障转储,我想知道是否有办法通过我的 Catch2 测试运行此工具以在发生崩溃时获取转储。关于如何做到这一点或使用其他工具的任何提示都会有所帮助,谢谢!达伦

0 投票
1 回答
36 浏览

batch-file - 需要将多个令牌分成多个参数,然后可以将这些参数设置为单独的变量

免责声明:我绝对没有任何语言的编码经验。

我需要创建一个脚本,它可以找到一个进程的 PID,其中将有多个运行,然后为每个 PID 创建一个进程转储。Procdump 不允许在运行多个进程时使用进程名称,因此我的目标是找到进程的 PID,然后将其设置为变量以供以后的命令使用。

这是我制作的 .bat:

我能够获得最后一个 PID 集并在命令中使用,但我不知道如何获得前两个。

这可能看起来一次性完成很多工作,但后来的目标是每 2 小时和 5 小时运行一次,持续 24 小时。我已经能够让它工作,所以现在我只需要解决 PID 问题。事后看来,也许 powershell 会是一个更好的选择,但我觉得我已经接近了,所以我想看看这条路线。

最多可以有三个进程。我在想它看起来像这样:

0 投票
1 回答
109 浏览

c++ - 在 procdump 针对异常创建转储后程序继续执行

我抛出了一个throw std::exception("dummy")没有在任何地方被捕获的异常(作为测试)。
如果没有附加 ProcDump,这会立即使进程崩溃。

当我将 ProcDump 附加-e到调试版本时,ProcDump 正确检测到未处理的异常,创建故障转储并退出。但是程序继续执行,就好像从未抛出异常一样。

我可以在 ProcDump 退出后手动使进程崩溃,但我真的不喜欢代码在崩溃后继续运行的想法,这种崩溃应该是致命的,即使它只是几毫秒。

这是什么原因造成的?如何确保我的程序崩溃(并且崩溃转储正确地代表了崩溃点)?这是 ProcDump 的问题还是我如何使用它?

这是重现此问题的最小示例:

我已经用 m$ clang-cl 和 msvc 试过了。我已经尝试了每一个 ProcDump 开关,甚至在与多个二进制文件的所有可能组合中都与我的问题模糊相关。

0 投票
0 回答
52 浏览

powershell - 使用 wmic 远程执行 procdump64.exe

我正在尝试使用 Powershell 中的 procdump64.exe 生成转储文件。我需要使用 wmic 远程运行可执行文件。我正在运行以下命令:

wmic /node:[IP Address] /user:"[DOMAIN/USER]" /password:"[PASSWORD]" process call create "cmd.exe /c U:\procdump64.exe -ma U:\lsass.exe > C:\dump.dmp"

作为参考,我已经验证 procdump64.exe 和 lsass.exe 都位于 U:\ 。

我收到显示“方法执行成功”的输出,返回值为 0。

但是,生成的文件是空的。谁能告诉我我的命令有什么问题?