由于某种原因,Windows进程崩溃了.我需要分析崩溃转储.
在Windows 2003中,PC运行状况帮助我们找到了故障转储文件.
如何在Windows 2008中获取故障转储文件位置?
我在Verizon Galaxy S III上遇到了很大的不稳定性,我相信它与WiFi驱动程序有关,或者至少与网络堆栈有关.我每天都会遇到完全系统崩溃,导致操作系统软重启.
为了追踪问题的根源,我想查看Android OS的历史崩溃数据.请注意,我不是在开发应用程序,我不希望有关如何使用LogCat跟踪开发中应用程序内的问题的说明.我想看看Android系统崩溃日志,但我不知道在哪里寻找它们.
提前致谢!
我们收到了客户的本机(完整)故障转储文件.在Visual Studio(2005)调试器中打开它表明我们遇到了由试图分配~10MB块的realloc调用引起的崩溃.转储文件非常大(1.5 GB - 通常它们更像500 MB).
因此,我们得出结论,我们有一个内存"泄漏"或失控的分配,要么完全耗尽进程的内存,要么至少将其分散到足以使realloc失败.(请注意,这个realloc用于分配日志记录缓冲区的操作,我们并不感到惊讶它在这里失败,因为一次性使用10MB将是我们除了一些非常大的非常不可更改的缓冲区之外的更大分配之一 - 问题本身可能与此特定分配无关.)
编辑:在下面的Lex Li评论交换之后,我应该补充:这对我们来说是不可再现的(此刻).这只是一个客户转储显然显示失控的内存消耗.
现在我们有一个转储文件,但是我们如何找到导致内存使用过多的原因?
我们使用DebugDiag工具来分析转储文件(所谓的内存压力分析器),这是我们得到的:
Report for DumpFM...dmp
Virtual Memory Summary
----------------------
Size of largest free VM block 62,23 MBytes
Free memory fragmentation 81,30%
Free Memory 332,87 MBytes (16,25% of Total Memory)
Reserved Memory 0 Bytes (0,00% of Total Memory)
Committed Memory 1,67 GBytes (83,75% of Total Memory)
Total Memory 2,00 GBytes
Largest free block at 0x00000000`04bc4000
Loaded Module Summary
---------------------
Number …Run Code Online (Sandbox Code Playgroud) 如果有人可以回答它,我希望有一个查询:Do not keep activities在开发人员选项测试Android移动应用程序期间要检查的选项.
我在我的应用程序中使用它,发现当我Do not keep activities在android中打开时,我的应用程序行为不当并且崩溃了.
我的问题很少:
1: How much this option will affect mobile applications?
2: What exactly does this do?
这听起来像是一个应用程序杀手,我注意到在开发者选项中有一个框说" 不要保持活动 - " destroy every activity as soon as the user leaves it.
这是否会在我的应用中创建任何正面或负面的功能?
这是否意味着如果我打开一个应用程序,一旦我离开它,它实际上关闭该应用程序,我不会在任务管理器中看到它手动杀死它?如果是这样,保持RAM使用率低是不是一件好事?
在保持使用它的优点和缺点是什么Do not keep activities,请分享它的经验.
我的软件最近部署到一位客户,他说该应用程序在启动后立即崩溃.经过一些初步调试后,客户为我提供了远程访问其中一台无法运行该应用程序的计算机. 我发现崩溃并不是我的应用程序特有的.任何依赖于.NET框架的应用程序都会立即崩溃.
方便的是,安装了Visual Studio 2008,因此我在其上创建了一个快速的hello world应用程序,然后单击Debug.该应用程序工作正常.但是,当我试图在visual studio之外的/bin/Debug/HelloWorld.exe目录中执行生成的二进制文件时,它崩溃了.
我试过的东西清单(更新):
我使用WinDbg创建了一个转储文件.对我来说,这并不是一切.
FAULTING_IP: mscorwks!PEImage::GetEntryPointToken+21 79f4ff9d f6401010 test byte ptr [eax+10h],10h
EXCEPTION_RECORD: 0012f710 -- (.exr 0x12f710) ExceptionAddress: 79f4ff9d (mscorwks!PEImage::GetEntryPointToken+0x00000021) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 00000000 Parameter[1]: 00000010 Attempt to read from address 00000010
FAULTING_THREAD: 00000b44
PROCESS_NAME: MyProcess.exe
ERROR_CODE: (NTSTATUS) …Run Code Online (Sandbox Code Playgroud) Hello Stack Overflow!
一个简单的问题:是否有可能将自定义错误数据嵌入到我的应用程序在其设备上崩溃时从用户那里获得的自动生成的iOS崩溃转储中?
例如:我的SQlite数据库由于某种原因(例如,数据库文件已损坏)将无法运行.我无法从此错误中恢复,因此我抛出异常,并在异常中嵌入详细的sqlite错误消息.问题是,应用程序的崩溃转储不会包含异常消息,因此要知道应用程序崩溃的条件并不容易.
有没有人知道将事情放入崩溃转储报告的方法?或者您是否有任何其他建议的方式向开发人员报告生产崩溃?
谢谢 !
我正在尝试在网络应用中调试一个不断崩溃Chrome的页面("噢,快照!"错误).我已启用/禁用自动崩溃报告,尝试使用日志记录 google-chrome --enable-logging --v=1(以及各种级别的详细程度),并且我得到的只是chrome_debug.log chrome中的"崩溃转储ID" ://崩溃显示所有转储ID,但是没有实际的转储文件
我看到其他问题涉及读取转储文件,但我找不到转储文件本身(只是ID).
获取崩溃ID /tmp并且~/.config/google-chrome/没有任何内容,但~/.config/google-chrome/chrome_debug.log显示发送了某些内容:
--2015-04-06 11:10:00-- https://clients2.google.com/cr/report
Resolving clients2.google.com (clients2.google.com)... 74.125.228.224, 74.125.228.225, 74.125.228.231, ...
Connecting to clients2.google.com (clients2.google.com)|74.125.228.224|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/dev/fd/3’
0K
Crash dump id: 7dac9d5d58258264
Run Code Online (Sandbox Code Playgroud)
关于在哪里找到发送的实际文件/数据的任何想法?
详情:Chrome版本:40.0.2214.111(官方版)Linux Mint 16(Petra)
编辑:一些额外的信息:
curtis@localhost:-$ tail -n 5 uploads.log && echo $(pwd)
1428584493,ddc357e4600a49e6
1428584497,7ac16455c152381a
1428589439,d00ad6f5e6426f3d
1428934450,66b3f722430511e8
1428939578,7a2efc2b681515d1
/home/curtis/.config/google-chrome/Crash Reports
curtis@localhost:-$ ll -a
total 12 …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个跨平台的崩溃处理程序.谷歌Breakpad看起来很有前途,但它非常缺乏任何文档,并且需要合理数量的摆弄实际开始.
什么是更好的选择?
我所需要的只是能够在崩溃时可靠地记录故障转储,堆栈跟踪和CPU信息.或者,使用Google Breakpad的体验是什么?它是伟大的还是可怕的?
我最近收到了一个客户的64位崩溃转储.
我们的流程都是32位,但客户的机器正在运行x64 Server 2008.
Visual Studio(2008和2010 Express)告诉我,我必须使用64位版本MSVSMON.EXE,我不能,因为我没有64位机器.
我很确定在WinDbg中有一种方法可以做到这一点,但我发现WinDbg是敌对的.
有没有办法在32位机器上调试64位转储,最好是使用Visual Studio?
我有一个*.dmp崩溃的应用程序的(转储)文件.现在,我想在另一台机器上分析崩溃的进程.也就是说,应用程序在一台机器上崩溃,我在其他机器上安装了Visual Studio.
现在,我需要什么才能看到堆栈跟踪和我的应用程序的所有符号?为*.exe文件和*.dmp文件是否足够?
或者我还需要源代码和PDB文件?
如果是这样,源代码和可执行文件是否应该放在与进程运行的机器上相同的目录结构中?
如何将PDB文件附加到Visual Studio中的崩溃转储文件?