2

我正在尝试获取转储以调试 ASP.NET 进程(Windows 2003 R2 SP2 x64)中的一些内存问题:

adplus -hang -o f:\dumps -pn w3wp.exe -quiet

有九个 w3wp.exe(都来自不同的网站)。每次我像上面那样运行 adplus 时,一些转储都会失败并出现以下错误:

WriteFullMemory.Memory.Read(0x100ea0000, 0x10000) failed 0x80070005, ABORT.
Dump creation failed, Win32 error 0n5
    "Access is denied."

失败似乎是随机的(或者我应该说我找不到原因),即有时某些进程转储很好,有时它们会因此错误而失败。我检查的事情:

  • 我确实拥有完整的管理权限
  • 目标硬盘上有足够的空间
  • 我在 IIS 上禁用了 ping 和故障保护,以防止 IIS 在 adplus 转储时终止进程。

还有什么我应该检查的吗?有没有其他人遇到过这个问题?Adplus 版本是 7.01.002 (02/27/2009)(几天前从最新的 SDK 下载)

4

2 回答 2

2

这是因为不可访问的内存读取失败。为避免这种情况,您可以使用 cdb/windbg 之类的东西并使用.dump /mA命令生成完整的内存转储。

除了它将忽略不可访问的内存读取失败并继续生成 minidump 之外,其他.dump /mA相同。.dump /ma

.dump 选项

/mA 选项等效于 /ma,除了它忽略读取不可访问内存的任何失败并继续生成小型转储。

高温高压

于 2011-06-07T13:35:11.060 回答
1

如果您是管理员成员,您仍然需要提升权限并不重要。

ADPlus 需要从在具有提升权限的本地管理员帐户下运行的命令提示符运行。如果您不这样做,则可能无法创建转储文件。

于 2011-06-07T13:45:11.647 回答