问题标签 [minidump]
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.
stack-trace - 使用 IDebugControl::GetStackTrace 错误线程堆栈跟踪
我有一个崩溃应用程序的小型转储,我想在我自己的库中使用 DbgEng 对其进行分析。现在有谁可以使用 IDebugControl::GetStackTrace 获取导致程序崩溃的线程的堆栈跟踪?
我感谢任何形式的帮助
谢谢
c# - xxx.exe 中 0x782260ec 处的第一次机会异常:0xC0000005:访问冲突
我的应用程序在一段时间后崩溃,但我找不到任何模式。我能够得到崩溃转储。应用程序在 Windows Mobile 6.5 上运行。它是用 C# 编写的。它使用Imaging API、PInvoks 和大量线程。
当我使用 Visual Studio 2008 调试该转储时,在输出中显示“xxx.exe 中 0x782260ec 处的第一次机会异常:0xC0000005:访问冲突”
调用堆栈显示 2 个条目。但我无法匹配其中任何一个来从我的代码中调用。
windbg.exe 表示此错误出现在“netcfagl3_5.dll”中
是否有一些特殊的技术可以分析 Windows Mobile 中的转储文件?
visual-studio - 转储文件中有什么?
MS Connect 版主要求我为我在使用 Visual Studio 时遇到的问题提供一个小型转储文件。
我的公司有点担心转储文件中可能包含的内容(大小约为半个演出)。
通过“轻度关注”,我仅仅意味着他们要求我找出是否会包含任何专有代码(如果是的话,会包含多少)。
转储文件是由 Visual Studio 通过执行以下操作创建的:
- 启动 Visual Studio。
- 启动另一个 VS 实例。
- 在第二个实例中,单击工具 | 附加到进程...
- 在进程列表中找到 devenv.exe。
- 单击选择...并明确选择“本机”和“托管”代码。
- 单击“确定”和“确定”关闭“选择”对话框和“附加到进程”对话框。
- 回到 VS 的第一个实例并重现崩溃。
- 崩溃后,控制权应转到 VS 的第二个实例。
- 在第二个实例中单击调试 | 保存迷你转储。
我认为 StackOverflow 上可爱的人们会提供帮助。所以我对你的问题是:
- Visual Studio 转储文件中有什么?
- 在创建转储文件之前,我是否应该考虑任何注意事项,以避免发送我的电子邮件内容、我的所有密码和我的银行账户详细信息以及我所有同事的源代码?
c++ - Windows:打开小型转储时看不到调用堆栈
我正在使用MiniDumpWriteDump
withMiniDumpNormal
参数在 SEH 异常处理程序中转储调用堆栈。当我在 VS 中打开转储时,我看不到调用堆栈。两天前,当我开始尝试倾倒时,我确实看到了相同的代码。我改变了一些东西,我不明白是什么。这是一个调试版本(我什至可以看到来自发布版本的调用堆栈)。如果我在调用处放置断点,我可以在调试器中看到调用堆栈正常MiniDumpWriteDump
。如果转储不是从异常处理程序中写入的,我可以在 VS 中打开转储后看到调用堆栈。堆栈未显示的原因可能是什么?
PS我用/EHa编译。还尝试完全禁用 C++ 异常(两天前肯定有效)。当然,.pdb 文件生成得很好。
PPS 这就是我所说的“调用堆栈没有出现”的意思。
python - 用 Python 编写 windows mini 转储
我一直在尝试创建一个函数,该函数将为给定的进程 ID 编写一个小型转储文件。到目前为止,我有这个:
进程和文件句柄创建成功。但是,对 MiniDumpWriteDump 的调用会设置以下错误:
Only part of a ReadProcessMemory or WriteProcessMemory request was completed.
有没有人知道为什么会这样?
c# - 使用 C# 插件挂在 COM 应用程序中
我有一个问题,我们的应用程序挂在我们客户的机器上,我已经使用了好几天没有解决。从我们所看到的情况来看,这个问题是随机出现的,尽管情况可能并非如此。客户还报告说,当应用程序挂起时,CPU 正在达到峰值。
问题是我不知道应用程序在哪里失败(挂起)。我们也有几个用 C# 编写的插件作为主 COM 应用程序的插件。
我已经设法让客户在出现问题的机器上使用 ProcExp 进行 MiniDump。但是,我对 WinDBG 或 MiniDumps 也不是很熟悉。我运行了!analyze -v
and !analyze -v -hang
,它产生了一些输出,包括下面的堆栈。据我所知,应用程序似乎正在转换到我们的 C# 插件 (CLR) 之一,然后又回到 COM,它应该是返回到插件可用的主应用程序的接口。但是然后呢?可以从这个堆栈中说更多吗?
如果重要的话,主应用程序是用 VB6 编写的。
编辑1: 阅读其他论坛帖子后我的一些想法。在我看来,挂起是在将数据类型从 .NET 编组到 COM 之后引入的。现在我读到了另一个问题,它似乎源于传递给 COM 方法的局部变量被垃圾收集的事实,因此 VB6 运行时在处理释放的内存时遇到了问题。另一个帖子不完全是这个问题,但它让我思考。
在调用 COM 的 .NET 代码中,我们有这种类型的代码
以及ref bool
直接从方法到方法传递的参数是否与任何事情有关?如您所见,我在这里的黑暗中跌跌撞撞...
wcf - 使用 Windbg 检测 WCF 通道泄漏
我有每个会话服务模式的 WCF 服务,并使用 WIF 进行身份验证/授权。但是一些客户正在使渠道泄漏。
有没有办法使用内存转储和 windbg 查看哪个客户端正在泄漏?我不能使用客户端 IP 地址,因为不止一个客户端来自同一个 IP。用户身份可能很有用,但我找不到泄漏的服务实例和使用的 ClaimIdentity 之间的联系。
c++ - 每当应用程序崩溃时为其创建转储文件
每当我的应用程序崩溃时,我都会尝试为它创建一个转储文件。我目前正在使用带有 -e 标志的 procdump.exe 来执行此操作,因此如果我的应用程序中有未处理的异常,procdump 会为我创建一个转储文件。
我以为我已经完成了,但后来我发现我的应用程序崩溃并且 procdump 没有创建转储文件。经过一些调查,我发现 vector::front 的无效使用会导致运行时错误。我打开了 _SECURE_SCL_THROWS 标志,之后 procdump.exe -e 确实捕获了崩溃并创建了一个转储文件。
现在我的问题是:当我的应用程序崩溃时,现在 procdump.exe -e 是否总是会创建一个转储文件?我如何保证我没有任何其他情况 procdump -e 对我不利?
c++ - WinDbg 分析故障转储在本地 pc 上不起作用
我开发了一个小型 MFC 应用程序,它将 24 小时在服务器上运行。(Windows Server 2008 R2,x64)
我故意让应用程序崩溃,以查看它的 minidump 文件是否正确创建和工作,并且它可以与 WinDbg 一起使用。
我是怎么做的。
但是,当我在本地笔记本电脑(Windows XP、x86)上做同样的事情时,我在调用堆栈文本中看到的都是非常基本的信息,如下所示。(它也没有显示我应该看哪一行来调试。)
我花了几个小时在谷歌上搜索,但在寻找答案时感到迷茫。为什么它不能只在我的笔记本电脑上工作?
我应该检查什么?我错过了什么?任何想法将不胜感激。提前致谢。
c - MiniDumpWriteDump 段错误?
我正在尝试转储一个进程,比如说calc.exe
当我运行我的程序时,我得到
这是代码