标签: memory-dump

Windows XP中的用户启动的内核转储

我记得看过Mark Russinovich的网络直播,显示用户启动的内核转储的键盘键序列.有人可以根据键的确切顺序刷新我的记忆.

请注意这是XP.

kernel windows-xp memory-dump

7
推荐指数
1
解决办法
2187
查看次数

如何调试Azure Web App内存泄漏?

Start ProfilingSCM门户中有一个很好的按钮,非常适合CPU.

在此输入图像描述

然后有一些来源引用一个Download GC Dump按钮:https: //stackoverflow.com/a/27987593/647845

但这似乎不再可用了.

然后是Download memory dump按钮.但是现在我无法弄清楚如何/我是否可以看到我也使用的Type/Refcount/Size stastistics.

在C#Azure Web App中查找内存泄漏的推荐方法是什么?

debugging memory-leaks memory-dump azure azure-web-sites

7
推荐指数
2
解决办法
3664
查看次数

自定义错误模块无法识别此错误

如果您在Outlook Web Access中点击" 自定义错误模块无法识别此错误 ",并且您在Firefox中; 然后你的会议可能刚刚超时!你刚写了一封大邮!如果你回去,所有表格字段将是BLANK!

而不是试图转储postdata,在https上使用wireshark,或者其他任何荒谬的事情:在Firefox中打开一个新的选项卡或窗口,然后在新的选项卡/窗口中转到并重新登录到您的OWA站点.回到失败的提交标签/窗口,右键单击邮件正文区域 - >此框架... - >重新加载此框架 - >重新提交表单!您的电子邮件将成功发送.

如果这个技巧不适合你,那么我建议你回顾一下Lazarus(Firefox插件); 记得使用文本编辑器保存电子邮件信件; 或者至少使用"Ctrl + C"并在提交之前复制邮件正文.希望这有助于任何查看Google结果的人都想知道如何收回他们的信息.

现在,我的问题是:在同样的情况下你还能做些什么呢? 珍贵的表单数据在内存中,您正在使用的https Web应用程序[或至少是会话]现在已经消失,并且大量未保存的工作在余额中挂起.

假设这是在win32上,你能做些什么来取回它?

你可以以某种方式记忆转储吗?配置代理并打印流?可以在不关闭或重新启动流程的情况下访问Firefox的会话数据吗?请问一些想法?

outlook memory-dump web-applications postdata session-timeout

6
推荐指数
1
解决办法
1万
查看次数

在WinDbg中解析故障转储的私有字节(托管堆除外)?

我想解析完整的崩溃转储(*.dmp)文件并获取专用字节数据.我知道SysInternals的VMMap可以告诉我我的私有字节,堆等是多少,但我需要的是如果我有转储,我应该能够解析它并获得Heap(托管堆)结构和数据堆.通过阅读PEB然后走过堆,我已经完成了这项工作.

我无法弄清楚的是如何读取私有字节(除了Heap,它应该是本机代码的进程数据).任何人都可以指出我正确的方向,以便我能够从崩溃转储中解析除堆之外的专用字节.

谢谢.

memory-dump windbg crash-dumps

6
推荐指数
1
解决办法
2509
查看次数

使用windbg进行内存泄漏调试,无需用户堆栈跟踪

我有一个完整的内存转储,但在这个例子中我没有用户堆栈跟踪数据库,我有最新的符号和原始二进制文件与转储一起,通常,我已经能够使用在!heap -p -a address分配时查看调用堆栈但如果没有用户堆栈跟踪数据库,这将无法工作.

我的问题是,是否有另一种方法(虽然不那么直接的方法)来获得这种内存泄漏的来源.

        LFH Key                   : 0x0000005c2dc22701
Termination on corruption : ENABLED
          Heap     Flags   Reserv  Commit  Virt   Free  List   UCR  Virt  Lock  Fast 
                            (k)     (k)    (k)     (k) length      blocks cont. heap 
-------------------------------------------------------------------------------------
00000000002e0000 00000002 3125248 3122792 3125248    282   378   197    0      7   LFH
0000000000010000 00008000      64      4     64      1     1     1    0      0      
0000000000530000 00001002    1088    416   1088     51    10     2    0      0   LFH
0000000000490000 00001002     512    284    512      5     5     1    0      0   LFH
0000000000af0000 …
Run Code Online (Sandbox Code Playgroud)

windows memory-leaks memory-dump windbg

6
推荐指数
1
解决办法
8150
查看次数

无法转换hprof转储

我尝试将转储从Android设备监视器转换为Eclipse内存分析器格式.我用下一个命令

hprof-conv dump.hprof converted-dump.hprof
Run Code Online (Sandbox Code Playgroud)

我得到错误

hprof-conv: command not found
Run Code Online (Sandbox Code Playgroud)

我在一个/platform-tools文件夹中这样做.当我在另一台计算机上运行相同的命令时,一切正常.问题是什么?

android memory-leaks memory-dump eclipse-memory-analyzer

6
推荐指数
1
解决办法
1544
查看次数

在查看内存转储的调用堆栈时,如何在VS中指定源代码目录?

我正在分析一个创建的.dmp文件,我有一个调用堆栈,它给了我很多信息.但我想双击调用堆栈,让它带我到源代码.

我可以右键单击调用堆栈并选择符号设置..我可以将位置放到PDB中.但是源代码目录没有选项.

c++ memory-dump crash-reports visual-studio

5
推荐指数
1
解决办法
2462
查看次数

如何在WinDbg扩展中基于转储文件内存创建对象?

我处理大型应用程序,并经常使用WinDbg根据客户的DMP文件诊断问题.我已经为WinDbg编写了一些小扩展,这些扩展已被证明对于从DMP文件中提取信息非常有用.在我的扩展代码中,我发现自己一遍又一遍地手动取消引用c ++类对象.例如:

Address = GetExpression("somemodule!somesymbol");
ReadMemory(Address, &addressOfPtr, sizeof(addressOfPtr), &cb);

// get the actual address
ReadMemory(addressOfObj, &addressOfObj, sizeof(addressOfObj), &cb);

ULONG offset;
ULONG addressOfField;

GetFieldOffset("somemodule!somesymbolclass", "somefield", &offset);
ReadMemory(addressOfObj+offset, &addressOfField, sizeof(addressOfField), &cb);
Run Code Online (Sandbox Code Playgroud)

这很好,但是由于我已经编写了更多扩展,具有更强大的功能(以及在我们的应用程序DMP文件中访问更复杂的对象),我渴望得到更好的解决方案.我当然可以访问我们自己的应用程序的源代码,所以我认为应该有一种方法可以从DMP文件中复制一个对象并使用该内存在调试器扩展中创建一个我可以调用函数的实际对象(通过我们的应用程序中的dll链接).这样可以省去手动拉出DMP的麻烦.

这甚至可能吗?我尝试了一些显而易见的事情,比如在扩展中创建一个新对象,然后直接从DMP文件用一个大的ReadMemory覆盖它.这似乎把数据放在了正确的字段中,但当我试图调用函数时吓坏了.我想我错过了一些东西...也许c ++拉出一些我不知道的vtable funky-ness?我的代码看起来类似于:

SomeClass* thisClass = SomeClass::New();
ReadMemory(addressOfObj, &(*thisClass), sizeof(*thisClass), &cb);
Run Code Online (Sandbox Code Playgroud)

关注:看起来像EngExtCpp的POSSIBLY ExtRemoteTyped是我想要的吗?有没有人成功使用过这个?我需要谷歌一些示例代码,但没有太多运气.

关注2:我正在对此进行两种不同的调查.
1)我正在研究ExtRemoteTyped,但看起来这个类实际上只是ReadMemory/GetFieldOffset调用的帮助器.是的,它有助于加速ALOT,但在从DMP文件重新创建对象时并没有真正帮助.虽然文档很小,但我可能会误解一些东西.2)我也在尝试使用ReadMemory用来自DMP文件的数据覆盖在我的扩展中创建的对象.但是,我没有像上面那样使用sizeof(*thisClass),而是认为我只会选择数据元素,并保持vtable不变.

c++ minidump memory-dump windbg object

5
推荐指数
1
解决办法
1106
查看次数

将IIS从经典模式切换到集成模式时锁定和高CPU

在IIS 6中,我们曾经使用两个第三方组件进行Url Rewriting:Helicon(用于处理无扩展网址)和UrlRewriting.net.前段时间我们迁移到IIS 7 - 经典模式,仍然使用这两个组件.

现在我们尝试使用本机.Net路由切换到没有第三方组件的集成模式.路由工作正常,但我们的Web应用程序表现完全不同.我们的网络服务器曾经保持低于10%的CPU使用率,但现在很容易使用50%甚至更高.

我们已经开始分析内存转储,但似乎没有找到问题的根源.似乎.Net缓存机制正在阻止垃圾收集器?这与使用"集成模式"有什么关系?

您可以在下面找到我们分析的摘录.任何关于下一步的建议都将不胜感激.

> !analyze -v -hang
*****************************
*                                                        
*                        Exception Analysis    
*                                                        
*****************************

GetPageUrlData failed, server returned HTTP status 404
URL requested: http://watson.microsoft.com/00000000.htm?Retriage=1

FAULTING_IP: 
+aceb6a0
00000000`00000000 ??              ???

EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 0000000000000000
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 0

FAULTING_THREAD:  0000000000000022
BUGCHECK_STR:  HANG
PROCESS_NAME:  w3wp.exe
ERROR_CODE: (NTSTATUS) 0xcfffffff - <Unable to get error code text>
EXCEPTION_CODE: (NTSTATUS) 0xcfffffff - <Unable to get error code text>
MOD_LIST: <ANALYSIS/>
NTGLOBALFLAG: …
Run Code Online (Sandbox Code Playgroud)

asp.net performance iis-7 memory-dump integrated-pipeline-mode

5
推荐指数
1
解决办法
2060
查看次数

在客户环境中创建内存转储好吗?

我的程序遇到严重问题,只能在客户所在地进行复制.放入日志,没有帮助,因为我怀疑第三方DLL发生了故障.出于某些原因,我无法从图书馆提供商处获得帮助.我正在考虑在失败时生成转储,以便离线分析它.这是推荐的做法吗?还是其他选择?

debugging memory-dump

4
推荐指数
1
解决办法
1183
查看次数