问题标签 [memory-dump]

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 投票
1 回答
97 浏览

c++ - 重定向 APPCRASH 转储(或将其关闭)

我有一个在 C:\Windows\SysWOW64 中生成 APPCRASH 转储的应用程序(不是自己写的)。转储时的应用程序已瘫痪,但以最低容量运行以不丢失数据。问题是这些转储非常大,以至于系统大部分时间都花在编写这些转储上,而应用程序在处理方面远远落后,很快就会开始丢失数据。

计划是完全禁用它,或者将其安装到 RAM 驱动器上,并在它们碰到 RAM 驱动器时立即清除它们。

现在我已经研究过使用这个键:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb787181%28v=vs.85%29.aspx

但它所做的只是现在生成第二个转储而不是重定向原始转储。

转储名为:

转储-2013_03_31-15_23_55_772.dmp

这通常是 Windows 上开发人员的领域(使用 C/C++ 之类的东西),所以我想打他们,不要认为 ServerFault 能给我任何答案。

另外:它不是循环转储文件(它们将填充硬盘驱动器上剩余的 20GB),所以我不确定这是 Windows 行为还是应用程序中的自定义代码(如果它是...... ick!)。

0 投票
1 回答
8708 浏览

windows - 在没有用户堆栈跟踪的情况下使用windbg进行内存泄漏调试

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

我的问题是是否有另一种方法(尽管不太直接的方法)来解决这个内存泄漏的根源。

从这个堆!heap -s摘要00000000002e0000(我很确定我想进一步调查。

我的问题是我不知道从这里去哪里,以前我已经按照这里找到的说明取得了巨大的成功,但是这次我没有用户堆栈跟踪数据库,我无法轻松地重现这种模式但我知道内存转储包含很多有用的信息,我只是不确定如何从这里获得有意义的东西。Windbg专家?内存转储分析师?请指教。

一些块,前几个字节

0 投票
1 回答
534 浏览

windbg - 为什么 WinDBG 在转储中显示不匹配的 FileVersion?

TL;博士

为什么 WinDBG 会lmv显示两个版本信息字段(当我知道没有其他工具可以做到这一点时)以及在哪些情况下这些字段会有所不同?


背景:我有一个我们的应用程序的实时转储(来自死锁)。符号已正确加载,我能够将死锁追溯到微软的pdm.dll(用于我们的 vbscript 引擎的“进程调试管理器”)。

然后,我想检查在生产站点的会话中加载了该 DLL 的哪个版本:

如您所见,文件和产品版本显示了两次,但它们在转储中不匹配!

当我在我的机器上交叉检查(显然,查看时间戳和校验和!)运行 iexplore 进程的相同文件时:

版本信息匹配。

0 投票
1 回答
1260 浏览

ios - iOS7更新后没有出现应用程序崩溃报告

操作系统:Windows 7(Mac 无法使用)运行 iOS7 的 Apple 移动设备

我们正在测试我们的应用程序。在 iOS6 及之前的 iOS 版本中,我们只需要使用 iTunes 同步 iOS 设备,应用崩溃日志和内存转储出现在“C:\Users\ * USERNAME \AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice \ * DEVICENAME "(主要是有一个 ".crash" 文件)。但是更新到 iOS 7 后,当 iOS 设备同步时,崩溃日志不再出现在指定目录中。由于崩溃日志对于了解导致崩溃的原因至关重要,因此一旦应用程序崩溃,我们就需要它们。请提供一些有关如何获取崩溃日志的帮助。

编辑:你们为什么不赞成?

0 投票
0 回答
475 浏览

windows-services - 在进程资源管理器中创建完整的内存转储会减慢 Windows 服务的速度,而我正在尝试转储其内存?

或在 Windows 任务管理器中创建相同的内存转储。这些程序究竟是如何创建内存转储的也很有趣..提前谢谢!

0 投票
2 回答
1273 浏览

asp.net - 应用程序池回收后如何在特定异常上获取内存转储

在我们的应用程序池回收后,我们的 WCF 服务在访问时抛出 FileLoadException。回收应用程序池有帮助。有时错误会在没有回收的情况下消失。我问了我在这里问的第一个问题:FileLoadException when access WCF service

由于我们没有其他想法如何分析这个问题,我们希望获得包含该异常的内存转储。

但我不知道如何配置 adplus 或 debugdiag 以自动附加到该新进程(回收后)并在特定异常时生成故障转储。这甚至可能吗?

0 投票
1 回答
1104 浏览

windows - 从完整内存转储中提取进程转储

我遇到了一个错误,但我无法创建进程转储。我已经创建了一个full memory dump系统。我怎么能提取一个process dump使用它?
Windows.

0 投票
1 回答
96 浏览

php - 从远程执行的 shellscript 调用 sudo 会转储随机内存?

我有一个 PHP 应用程序,它通过 SSH 登录到本地机器,启动一个 shellscript 并将该脚本的输出实时打印回浏览器(通过保持页面加载)。

但是,当 shellscript 达到sudo service apache2 reload > /dev/null1024 字节时,看似随机的内存会被转储并在脚本正常完成时中止输出。
当连接最终终止时(例如通过终止它),屏幕上会出现一些额外的随机内容,具体取决于连接保持打开的时间。

正在执行的 PHP 脚本只会读取 SSH 连接的标准输出,直到发生一些中止/终止事件。除此之外,它将 ANSI 颜色代码转换为 HTML <span>

对于所有关注安全的人:PHP 正在登录一个普通用户,该用户仅对该命令具有“NOPASSWD”sudo。

我可以说是sudo调用导致了问题,因为我的脚本经常输出正在发生的事情,通过echo它显示得很好。
此外,我不想在重新加载失败并吐出一个实际有用的错误的情况下将 stderr 排除在外。

相关东西的安装版本:

  • PHP5.3.3-7+squeeze17 with Suhosin-Patch (cli) (built: Aug 23 2013 15:06:16)
    我需要 PHP 5.3,因为旧版应用程序无法处理新版本。
  • libssh2-php0.11.0-2.1
  • OpenSSL 1.0.1e-2+deb7u7( https://www.debian.org/security/2014/dsa-2896 )
  • openssh 服务器1:6.0p1-4+deb7u1

如何解决此问题以不再转储随机内存?

0 投票
2 回答
3624 浏览

.net - .NET 应用程序的本机访问冲突

我们的 .NET 应用程序有问题。它在关闭时随机产生本机访问冲突(因此不是 .NET 异常)。

  • Windows Server 2012 x64(在刀片系统上运行的虚拟机)
  • .NET 4.0 框架(安装 4.5)
  • 我们的应用程序是 .NET x86 应用程序(不是 AnyCPU;不是 ASP.NET)
  • 第三方原生模块使用 SQL CE 3.5 等

Windows 事件日志中的错误报告看起来像这样(省略了应用程序和模块名称,我翻译了德语条目):

我发现 0xc0000005 是访问冲突。这也可能由于 .NET NullReferenceException 而发生。当 Windows 错误报告对话框打开时,我们已经使用 ProcDump 标志 -ma创建了一个完整的内存转储。

当我打开这个转储时,除了 .exe 文件本身之外,我找不到任何加载的 .NET 模块。我不是本地编程专家,只知道一些关于 WinDbg 的基础知识。

所以我做了什么:

  1. 使用 WinDbg 打开转储
  2. 设置符号路径

    /li>
  3. 重新加载所有符号

    /li>
  4. ~* k输出

    /li>
  5. 下一部分我很不确定我所做的是否正确。我在某处读到,您可以获取列 RetAddr 的地址并将其传递给 uf 以查看此时该函数在做什么。这个对吗?所以我期待下面的命令显示来自 MyProgram+0x6a9e 函数的反汇编,参见上面的调用堆栈。

    我不确定如何解释这一点。由于CoreExeMain Exports,我看起来这确实是应用程序的入口点?所以这里没有那么多有用的信息,或者?只是问题发生在本机代码级别;据我解释。

只是为了完整性:

当我用 Visual Studio 打开转储时,也没有发现异常。

所以这就是我走了多远。也许有人可以帮助我解释这些数据和/或给我一些提示我还能尝试什么?

我的问题:

  • 使用 Reflection.Emit 生成的 IL-Code 会导致这种错误吗?
  • 我该怎么做才能进一步分析问题/找到原因?
  • COM+_Entry_Point 是什么意思。这是我的应用程序的主要入口点还是与某些外部组件有关?

编辑

@Jochen Kalmbach

为什么是小型转储?

@托马斯·W。

编辑 2

附加信息:

那是什么意思?

0 投票
1 回答
981 浏览

windbg - ClrMD 获取内存转储时间

我正在使用CLR 内存诊断工具来分析内存转储。

使用 WinDBG 打开转储,我可以使用.time命令获取调试会话时间(捕获转储时)。

有人知道 ClrMD API 来获取日期吗?