问题标签 [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 回答
181 浏览

c++ - 如何通过具有命令行参数的 procdump 启动 Windows 应用程序?

我有一个用于 Windows 的 C++ 应用程序,它采用命令行参数。

如何使用procdump这些参数启动应用程序?

我试过了 :

但都没有说:

但是,如果我明确运行该应用程序,它运行良好。

这有效:

我在谷歌上没有找到任何关于如何使用procdump. procdump如果做不到,我对任何其他相当简单的设置 CLI 持开放态度。任何帮助表示赞赏。

0 投票
0 回答
491 浏览

windows - 分析这个 Procdump .dmp 文件 - 来自 Apache httpd.exe

最近我的服务器的 Apache httpd.exe 已经像疯了一样崩溃(发布到服务器故障线程这里https://serverfault.com/questions/998227/windows-server-2008-r2-apache-2-4-constant-crashing-with -故障模块名称)。

我尝试了在网上找到的所有解决方案,但它仍然会发生。最后,我使用 Procdump 来监控 httpd.exe 进程,并在它崩溃时获取这个转储文件。但是如何分析结果是我的知识。我需要这方面的帮助。

使用 WinDbg 打开 .dmp 文件:

运行后!analyze -v

编辑:

我监视了另一次崩溃,这是运行后的结果!analyze -v

0 投票
1 回答
54 浏览

powershell - 前一个进程终止后如何自动启动新进程?

当 w3wp 通过 cmd/Powershell 达到内存阈值时,我正在捕获内存转储。

这里的问题是 cmd/Powershell 的进程在几个小时后自动终止,并且没有捕获任何转储,因为没有达到内存阈值。

进程 [7784] 已终止!按 ENTER 开始一个新的 cmd 进程。

我必须再次运行它

那么您知道在旧的 cmd/Powershell 进程终止后如何重新启动/重新运行命令吗?

我的命令在这里很简单

procdump -accepteula -ma 5246 -m 13312 -s 5 -n 1 D:\home\Logfiles\

谢谢你。

0 投票
1 回答
249 浏览

windbg - 从用户空间按需获取内核转储,无需内核调试 (Windows)

procdump生成具有句柄信息的内核转储的最简单和最可移植的方式是什么(在只需将几个文件复制到目标机器的意义上)?

procdump具有-mk生成与指定进程有关的有限转储文件的选项。在 WinDbg 中报告为: Mini Kernel Dump File: Only registers and stack trace are available. 我尝试的大多数命令 ( !handle, !process 0 0) 都无法读取数据。

似乎是正式的,windbg并且kd会生成转储(这需要内核调试)。

我发现一个奇怪的解决方案是使用livekdwith -ml: Generate live dump using native support (Windows 8.1 and above only).livekd仍在寻找kd.exe,但不使用它:) 所以我可以用一个空文件来欺骗它,并且不需要内核调试。知道它是如何工作的吗?

0 投票
2 回答
232 浏览

.net - 如何从 Windows 转储文件 (procdump) 中导出已加载库的列表

我正在查看 Visual Studio 2019 中的 *.dmp 文件 - 它显示了加载系统 DLL、文件名、版本、文件夹等的列表。

我想复制此信息以粘贴到 Excel 中,但我无法从 Visual Studio 中复制它。

任何人都知道我是否可以将其从转储文件导出到文本文件?

0 投票
1 回答
60 浏览

c# - Hung Winforms 应用程序不会使用 procDump64 触发转储文件

我正在学习如何在程序挂起时使用 procdump64 自动创建转储文件。

我创建了一个简单的 Winforms 应用程序,当按下按钮时它会陷入死锁。

我发出了这样的命令:

C:\Users\vl\source\repos\MyApp\MyApp\bin\Release\procdump64 -h Myapp.exe

我可以看到 procdump 开始监控。然后我按下按钮,我的表单不再响应。但是,即使经过很长时间,也没有生成转储文件。

可能是什么问题呢?

谢谢!

0 投票
0 回答
415 浏览

memory - 为什么 ProcDump 在 64 位 Windows 10 下无法记录 32 位进程的内存内容?

我想使用 ProcDump 的能力MINIDUMP_TYPE通过-mc命令行开关创建自定义的 minidump 以包含超出MiniDumpNormal.

不幸的是MiniDumpWithFullMemory, MiniDumpWithIndirectlyReferencedMemory,MiniDumpWithPrivateReadWriteMemory | MiniDumpWithPrivateWriteCopyMemory似乎也没有任何效果:创建了一个非空的小型转储,没有显示错误,但比预期的要小很多,并且通过 WinDbg 的.dumpdebug功能查询小型转储不会列出任何上述标志,即使明确包含在小型转储中类型。似乎上面提到的任何标志都不会影响 ProcDump 的行为。

有问题的进程是在 64 位 Windows 10,build 2004 下运行的 32 位进程。我尝试了 procdump.exe 和 procdump64.exe 9.0 版,尽管没有-64命令行开关,因为我不想包含 SysWOW64高架。我还尝试将最新的 Windows SDK 调试工具提供的 32 位和 64 位版本的 dbghelp.dll 复制到 procdump.exe 和 procdump64.exe 所在的相应文件夹中。最后,我确保将 minidump 类型作为十六进制数字传递,并且我尝试过的任何其他标志似乎都可以毫无问题地被识别,并且在之后检查 WinDbg 中的 minidump 时被列出。

例如,调用procdump.exe -mc 51B25 <process>应该创建一个转储

在 WinDbg 中检查转储时,既不MiniDumpWithPrivateReadWriteMemory也不MiniDumpWithPrivateWriteCopyMemory显示在.dumpdebug相应内存区域不可用的信息中。MiniDumpWriteDump请注意,当我出于演示目的从应用程序中创建转储时,使用时确实会显示标志.dumpdebug,并且生成的小型转储将明显更大(在其他可比较的条件下)。

有人可以确认 ProcDump 确实忽略了与内存相关的标志或向我解释我做错了什么吗?

(使用开关编写 MiniPlus 转储-mp确实有效,但不一定包括感兴趣的内存区域。)

0 投票
1 回答
39 浏览

procdump - 使用 procdump 作为 AeDebug 工具,如何更改转储目录?

当进程崩溃时,我正在使用 procdump 自动创建 minidump。它使用以下语法:

但是转储文件夹是C:\Users\Administrator,我该如何更改C:\dumps

我尝试使用procdump64 -j c:\dumps -i,但它不起作用。

0 投票
1 回答
223 浏览

windows - Procdump:如何捕获可用的 IIS 故障转储

我一直在尝试获取 w3wp 崩溃转储以查看崩溃调用堆栈。我有两个转储,但它们都有一个线程 - 似乎 AppDomain 已经被回收了,并且在保存转储时没有任何有用的东西留在这个过程中。

使用的命令:“ procdump -mm -e -n 1 -l pt <PID>

也尝试-ma了完全转储,但结果是一样的:

我不确定我是否在命令中遗漏了某些内容,或者 IIS 在使用 procdump 捕获它们时没有提供可用的托管转储 - 任何输入都非常感谢!

附加细节:我看到 procdump 记录了 STACK_OVERFLOW 异常,这显然需要不同的方法来捕获有用的转储。有关详细信息,请参阅下面我自己的答案。

只花了几个小时-希望这将为像我这样的其他人节省一些时间。

0 投票
0 回答
16 浏览

windows - procdump 转储是否显示由于需求分页而从未加载的页面?

最近我了解了Demand Paging以及仅在访问页面时才加载页面。我很想知道使用 procdump.exe(来自 Sysinternals)创建的转储是否会显示完整的虚拟地址空间,包括未加载的页面,或者,它是否只会显示已加载并在 MMU 中映射的页面?

我的自然想法是 procdump 将请求每个页面数据,因此将加载每个页面并转储完整的虚拟地址空间,但我没有找到任何方法来确保这一点。

谢谢