问题标签 [crash-dumps]

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 投票
0 回答
391 浏览

internet-explorer - 从我的 Web 应用程序打印时 IE 6 崩溃

从我的应用程序中第二次单击打印按钮时,IE 6.0 崩溃了。

重现步骤: 1) 单击打印按钮并取消打印对话框。2) 再次点击打印。IE 6.0 崩溃。

它在 IE 7 和 8 中运行良好。

下面是我从 WinDbg 获得的堆栈跟踪。

0 投票
2 回答
700 浏览

windbg - 如何获取 SLC.pdb 来分析内存转储

我在 Windows Vista 上使用 windbg 6.12.0002.633 X86 来分析内存转储中的内存泄漏。我正在尝试使用命令 ``dumpheap -stat to determine the quantities of objects in the heap. Unfortunately, I'm getting the error*** 错误:找不到符号文件。默认为 SLC.dll 导出符号. I have activated!sym 嘈杂to show where the error comes from and the file SLC.pdb is just not available on the symbol server. I have googled the file but haven't found such a downloadable file. The last line in the log output says:无法解决“mheap -stat”处的错误。我无法继续调试,因为我永久收到此错误。

有谁知道我在哪里可以获得 SLC.pdb 文件或解决此问题的其他方法?

0 投票
2 回答
1169 浏览

c# - 在我的应用程序中生成/创建 mdump 文件

我正在寻找一种在我的应用程序中生成 minidump 文件的方法,类似于 ProcDump 所做的事情,但最好是使用代码,而不必提取 3dparty 工具来做到这一点

不想使用ProcDump的主要原因是:
1)二进制文件的大小会大大增加(这是一个问题,因为我的应用程序是免费软件,带宽不是免费的)。
2) 感觉很脏。
3) 我无法将该应用移植到运行 inn windows mobile。

我的要求是:
1)能够在致命崩溃中生成 mdump 文件。
2)能够“暂停”应用程序进行转储,并且继续将是一个奖励

如果这不是一个选项,有没有办法在当前上下文中动态获取局部变量的值?

旁注:我确实找到了这篇文章,但它很旧,所以我很犹豫要不要以此为基础。
IE 9 或网站似乎有问题,所以我遇到了标签问题。

0 投票
3 回答
2246 浏览

c++ - Windows C++ 应用程序崩溃

我有一个 Windows C++ 应用程序不时在用户计算机上崩溃。我没有编写应用程序,它没有自己的日志记录。是否有我可以使用的工具/实用程序能够在应用程序退出时记录一些有用的信息(例如发生崩溃的文件和行号)?最终用户的组件没有 Visual Studio。

0 投票
1 回答
2111 浏览

iphone - 自动上传崩溃日志 iPhone

给你一个快速的问题。

如果我的应用程序定期检查崩溃日志并将其上传到服务器,我会在 Appstore 审批流程中遇到任何问题吗?这甚至可能吗?如果没有,我是否可以使用全局异常处理程序之类的东西并让我的应用程序优雅地终止,同时能够将异常消息上传到服务器?

谢谢,
泰加

0 投票
1 回答
900 浏览

vb6 - 经典 asp (vb6) 应用程序崩溃,CPU 使用率为 100%

我在使用最近开始崩溃的旧旧应用程序时遇到问题。我正在尝试调查 DebugDiag 分析,但运气不佳。是否存在锁定的 sql 查询,并且调用线程不会以某种方式消失?然后调用堆栈再次指向 oledb32!CImpIErrorInfo::GetHelpFile+a1。

这是来自 DebugDiag 的信息,我认为与此问题相关:

w3wp.exe_ MyApp _PID_ 7572 _Date__10_21_2010__Time_08_43_22AM_ 720 _Manual Dump.dmp 中的以下线程正在使用 ADO 进行数据库操作。

对 MSADO15!CERRORLOOKUP::GETHELPINFO 的调用源自 oledb32!CImpIErrorInfo::GetHelpFile+a1

...剪辑...剪辑...

线程 17 - 系统 ID 4160 入口点 msvcrt!_endthreadex+2f 创建时间 21.10.2010 0:08:16 在用户模式下花费的时间 0 天 00:11:22.781 在内核模式下花费的时间 0 天 00:27:49.953

该线程正在使用 ADO 进行数据库操作。

对 MSADO15!CERRORLOOKUP::GETHELPINFO 的调用源自 oledb32!CImpIErrorInfo::GetHelpFile+a1

函数源 ntdll!GetUILangID+31
ntdll!LdrpSearchResourceSection_U+186
ntdll!LdrFindResource_U+18
kernel32!FindResourceExW+65
user32!LoadStringOrError+31
user32!LoadStringW+18
msado15!FetchInfo+ba
msado15!CErrorLookup::GetHelpInfo+1e
oledb32!CImpIErrorInfo:: GetHelpFile+a1
msvbvm60!ExecProj::SetModuleCount+a
msvbvm60!CEcProjTypeComp::Release+4
msvbvm60!Rc​​mConstructModuleInstance+8f
oleaut32!DispCallFunc+16a
msvbvm60!VBStrToLong+cf
msvbvm60!FileOutString+bb
msvbvm60! _vbaPrintObj+51
MSWCRUNDesigner +8d!
MSWCRUN!DllUnregisterDesigner+accb
MSWCRUN!DllUnregisterDesigner+af8c
MSWCRUN!DllUnregisterDesigner+a7de
MSWCRUN!DllUnregisterDesigner+7b51
MyApp!DllCanUnloadNow+212e
oleaut32!DispCallFunc+16a
msvbvm60!VBStrToLong+cf
msvbvm60!FileOutString+bb
msvbvm60!
_vbaPrintObj+51
MSWCRUN!DllUnregisterDesigner+8ad3
MSWCRUN!DllUnregisterDesigner+7d13
MSWCRUN!DllUnregisterDesigner+6e64
MSWCRUN!DllUnregisterDesigner+9097
MSWCRUN!DllUnregisterDesigner+8fa6
vbscript!IDispatchInvoke2+b2
vbscript!IDispatchInvoke+59
vbscript!InvokeDispatch+12a vbscript
!InvokeDispatch+12a
CScriptRuntime::RunNoEH+234c
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CSession::Execute+c8
vbscript!COleScript::ExecutePendingScripts+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+24c
asp!CHitObj::ViperAsyncCallback+3f0
asp!CViperAsyncRequest::OnCall+92
comsvc​​s!CSTAActivityWork::STAActivityWorkHelper+32
ole32!EnterForCallback+c4
ole32!SwitchForCallback+1a3
ole32!PerformCallback+54
ole32!CObjectContext::InternalContextCallback +159
ole32!CObjectContext::DoCallback+1c comsvc​​s
!CSTAActivityWork::DoWork+12d
comsvc​​s!CSTAThread::DoWork+18
comsvc​​s!CSTAThread::ProcessQueueWork+37
comsvc​​s!CSTAThread::WorkerLoop+190
msvcrt!_endthreadex+a3
kernel32!BaseThreadStart+34

...剪辑...剪辑...

从 194.241.111.228:26238 到 81.175.250.2:80 的客户端连接
主机头 81.175.250.2:80 GET 请求 /MyApp/netk.asp HTTP 版本 HTTP/1.1 SSL 请求假 存活时间 00:49:33 QueryString
请求映射到
HTTP请求状态 HTR_READING_CLIENT_REQUEST 本机请求状态 NREQ_STATE_PROCESS

0 投票
5 回答
19475 浏览

visual-studio-2010 - 在 64 位机器上捕获的 32 位进程的调试转储

我最近收到了一位客户的 64 位故障转储。
我们的进程都是 32 位的,但客户的机器运行的是 x64 Server 2008。

Visual Studio(2008 和 2010 Express)告诉我必须使用 64 位版本MSVSMON.EXE,但我不能,因为我没有 64 位机器。

我很确定在 WinDbg 中有一种方法可以做到这一点,但我发现 WinDbg 是敌对的。

有没有办法在 32 位机器上调试 64 位转储,最好使用 Visual Studio?

0 投票
2 回答
121 浏览

c# - 如何从远程客户端机器传输到开发团队软件崩溃?

如果我的应用程序可以在许多我没有任何访问权限的客户端计算机上运行,​​我会搜索知道在客户端计算机上进行错误跟踪的经验的人。我在我的应用程序中有非常大的调试日志记录功能,但在许多情况下,如果没有非常大和不可读的日志,这很难检测到崩溃问题,然后我寻找其他解决方案来检测此类问题。

我想开发一些代码,可以很好地向我传输有关软件崩溃的信息。在开发人员机器上我在崩溃后使用Visual Studio JIT Debugger,但在远程选项中我不能使用它(我认为)有什么好方法可以以例如JIT崩溃格式向我传输有关崩溃的信息?

我想要这个解决方案用于纯C++非托管项目和C#单独管理。

问候,感谢您的好答案。

0 投票
1 回答
1520 浏览

windows - 关于内存转储的问题

我目前正在尝试设计一个内存转储工具,可以从另一个进程获取崩溃进程的内存转储。但我对此完全陌生,我想借此机会深入了解内存转储技术。

我想知道为崩溃的进程创建内存转储的工作范例。我现在的疯狂想象如下:

当一个进程崩溃时,操作系统总是会知道(我不知道怎么做,但它应该能够)。然后操作系统启动了某种机制,将崩溃进程的虚拟地址空间的内容复制到所谓的转储文件中。然后我们可以使用 WinDbg 来调试转储文件。

我在想,如果我们可以将崩溃进程的整个虚拟地址空间复制到转储文件中,文件会不会太大?或者我们可以指定转储哪个虚拟地址空间(内核/用户)?

任何人都可以为我提供一些参考,特别是在以下方面:

  1. 什么是内存转储?

  2. 如果有所谓的内核转储和用户模式转储,它们是什么?

  3. 在 Windows 平台上,我需要哪些 API?MiniDumpWriteDump()等函数是否相关?

  4. 当操作系统检测到某个进程崩溃时,是否有任何信号可以监控,以便通知我的转储工具开始转储?

感谢您花时间看我的话。


添加1:

(5) 什么是小型转储?它与内核/用户模式转储有何关系?

(6)当我们谈论内存转储时,我们指的是哪个内存?虚拟内存还是物理内存从这张来看,我认为应该是物理内存。

添加2:

我刚刚找到了关于使用 DbgHelp.dll 中包含的 API 编写 MiniDump的一个很好的参考。我想分享它。如果你能提供其他与此相关的好材料,你介意分享一下吗?谢谢。

顺便说一句:我会根据我的进展不断更新这个线程。任何评论将不胜感激。

0 投票
1 回答
69 浏览

debugging - 创建内存转储时我的角色是什么?

我正在研究如何使用MiniDumpWriteDump()方法来创建小型转储。在阅读了一些文章后,我觉得我所能做的就是提供一些回调函数和各种标志来告诉操作系统我要转储什么。然后操作系统将收集各种信息,例如调用堆栈到转储文件中。

但这就是我能做的吗?我不想使用所谓的 API,这让我感觉就像在浴缸里游泳,而不是在大海里游泳。还有其他方法可以自由检查计算机内存吗?谁能提供一些参考来实现这一目标?

非常感谢。