我遇到了一个错误,但我无法创建进程转储.我创建了一个full memory dump系统.我如何提取process dump使用它?
Windows.
我想问一下是否有人可以向我解释使用十六进制格式(例如由摩托罗拉 S-Record 或英特尔十六进制)比使用直接二进制映像(如固件或内存转储)的好处?
我知道有一些关于二进制文件的元信息很有用,比如使用的内存区域,数据完整性的校验和等等……但是,实际数据大小加倍的事实,因为一切都将以十六进制 ASCII 格式保存代表让我感到困惑。
使用十六进制 ASCII 表示的原因仅仅是可移植性,以防止具有不同字节字节序的系统出现问题还是有其他好处?
我为这个主题找到了许多关于如何将二进制转换为十六进制和向后转换或某些格式的规范的教程,但没有关于优缺点的信息。
假设您的时间很短,并且您正在寻找具有某些功能的程序,并且您找到一个,除了它缺少一个功能 - 它无法保存和加载其状态.是否有可能在操作系统级别或其他程序上实现这一点,可以完成所有操作,将其写入文件,然后在以后将其加载回内存?怎么样?
特别是对我来说,这是关于Java程序,但欢迎有关此主题的更多信息.
我有一块正在运行的java软件被卡住了.我想在里面看到一个视图,但不知道该怎么做.
是否有一些工具可以给出一个PID,它会告诉我每个线程当前位于何处以及可能还有一些变量值?我正在运行linux.
我或多或少知道导致问题的原因,但仍有一些可能的情况,因此确定它会很好.
我无法重现错误,因为它每隔几天才会出现,并且在调试时从未出现过,所以这是了解敌人的独特变化.
有任何想法吗?
我有一个ASP.Net应用程序偶尔会崩溃并导致工作进程重新加载.系统在Windows Server 2008 R2 64位SP1上的IIS 7.5上运行.
我在Application Eventlog中收到一个Application Error事件,然后是一个Windows错误报告事件日志.
Windows错误报告事件日志将我指向一个目录:
C:\ ProgramData \微软\的Windows\WER\ReportQueue\AppCrash_w3wp.exe_624e5315e1074e44338812efe102157b47f6ca8_053f0ff3
浏览网页表明我应该能够在此目录中找到内存转储,但是,我所拥有的只有一个文件"Report.wer".
我的想法是,我需要修改一些注册表设置,以便在再次发生时获得崩溃转储,尽管我似乎无法找到需要更改的设置.
当前的注册表设置如下
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
"ErrorPort"="\\WindowsErrorReportingServicePort"
"MaxQueueSizePercentage"=dword:00000001
"PurgeThreshholdValueInKB"=dword:0000000a
"ServiceTimeout"=dword:0000ea60
"MachineID"="EAF7F17C-3D38-42B1-9C22-8CDD82DD7F90"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Hangs]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\HeapControlledList]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\HeapControlledList\dwm.exe]
"EnableHeapThrottle"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\RuntimeExceptionHelperModules]
"C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscordacwks.dll"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\WMR]
"Disable"=dword:00000001
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道我可能需要更改/添加哪些设置,以便在下次工作进程崩溃时获取内存转储.
asp.net memory-dump crash-dumps iis-7.5 windows-server-2008-r2
我们遇到.NET应用程序的问题.它在关闭时随机产生本机访问冲突(因此不是.NET异常).
来自Windows事件日志的错误报告看起来像这样(省略了应用程序和模块名称,我从德语翻译了条目):
Exceptioncode: 0xc0000005
Offset: 0x00006a9e
Process ID: 0xfe8
...
Run Code Online (Sandbox Code Playgroud)
我发现0xc0000005是一种访问冲突.由于.NET NullReferenceException,也可能发生这种情况.当Windows错误报告对话框打开时,我们已经使用ProcDump标志-ma 创建了一个完整的内存转储.
当我打开这个转储时,除了.exe文件本身之外,我找不到任何加载的.NET模块.我不是本地编程方面的专家,只知道一些关于WinDbg的基础知识.
所以我做了什么:
使用设置符号路径
.sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;C:\PathToMatchingPDBs\ForTheProgram
Run Code Online (Sandbox Code Playgroud)重新加载所有符号
.reload /d /f
Reloading current modules
...*** ERROR: Symbol file could not be found. Defaulted to export symbols for sysfer.dll -
...
Run Code Online (Sandbox Code Playgroud)~* k 输出
. 0 Id: 1560.19a4 Suspend: 0 Teb: ff20e000 Unfrozen
ChildEBP RetAddr
0058f0e8 7744c752 ntdll!ZwWaitForMultipleObjects+0xc
0058f26c 76d256c0 KERNELBASE!WaitForMultipleObjectsEx+0x10b
0058f2e0 76d2586a kernel32!WerpReportFaultInternal+0x1c4
0058f2f4 …Run Code Online (Sandbox Code Playgroud)WER 在应用程序挂起后创建内存转储。当 Windows 显示对话框ApplicationName没有响应时,如果用户单击关闭程序,我可以看到 .hdmp 文件正在 .hdmp 中创建C:\ProgramData\Microsoft\Windows\WER\Temp。将它们发送给 Microsoft 后,将创建此文件夹:C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppHang_WindowsFormsApp5_823dc9208bf3a14f898f39469b7b6a0c6f17c7_3db8b24d_07a39f1b. 但是,此文件夹只有一个带有摘要的 .wer 文件。
是否可以将 Windows 错误报告配置为保留捕获本地磁盘上无响应应用程序的内存转储?
我已经尝试过Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps,但它只是为崩溃创建转储,而不是挂起。
如何为意外停止的 Windows 服务生成内存转储?
我试图在快照记录器模式下为FreeRTOS使用Percepio跟踪库.在我的发现板上编译并运行它后,我需要以某种方式将整个RAM转储到文件中.我已经启动了ST-LINK实用程序,但我对如何转储整个RAM感到困惑.有人可以暗示这件事吗?
我有一个应用程序从Windows窗体文本框中获取一个字符串,并将其传递给使用字符串作为参数的API.我看到任务完成后仍然可以从进程内存中查询字符串.我遇到过SecureString用于字符串内存管理功能的建议.但是,如果我理解正确,如果安全字符串是从字符串构建的,或者安全字符串的值最终存储在字符串中,则字符串的用途就会失败.
请建议什么是最好的解决方案.
知道异常代码,有没有办法找到更多关于抛出的实际异常意味着什么?
我的例外有问题:0x64487347
异常地址:0x1
调用堆栈不显示任何信息.
我正在审查崩溃的.dmp,而不是在Visual Studio中实际调试.
我有一个Windows Forms应用程序(.NET 4),它在我的开发机器上运行良好但在其他两台测试机器上崩溃.我可以加载它在VS2010中创建的minidump.
选择"混合调试"导致Visual Studio滥用CPU显然无穷无尽(我在大约20分钟后杀死了devenv).
当我"仅使用Native进行调试"时,它找不到源(即使我已将源镜像到测试机器上的同一文件夹中).它简单地说:
YourWinApp .exe.hdmp中0x793f5b8c处的未处理异常 :0xC0000409:0xc0000409.
然后告诉我
调用堆栈位置:clr.dll!793f5b8c()
我如何找出导致应用程序崩溃的原因?在显示"通知Microsoft"对话框时,我可以采取完整的故障转储,这会有所帮助吗?
memory-dump ×12
windbg ×3
c# ×2
dump ×2
java ×2
windows ×2
.net ×1
.net-4.0 ×1
asp.net ×1
binary-data ×1
bootloader ×1
c++ ×1
clr ×1
crash ×1
crash-dumps ×1
deadlock ×1
exception ×1
firmware ×1
freertos ×1
hexdump ×1
iis-7.5 ×1
il ×1
jvm ×1
load ×1
process ×1
ram ×1
save ×1
securestring ×1
stm32 ×1
string ×1
visual-c++ ×1
windows-10 ×1