使用VADump跟踪内存使用情况 - OpenProcess失败c0000034

时间:2009-06-05 09:35:21

标签: memory profiling memory-profiling

在阅读article in the most recent issue of MSDN magazine后,我想尝试使用VADump来分解我编写的某些应用程序的内存使用情况。

我电脑上唯一的可执行文件副本位于:

  

c:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\winnt\vadump.exe

无论我给VADump提供什么参数组合,它都会返回错误:

  

OpenProcess Failed c0000034

谷歌搜索出现了其他一些有同样问题的人,但这些帖子都没有我能找到的解决方案(甚至是回复!)。

本机正在运行安装了VS2005和VS2008的WinXP SP2。

VADump看起来是一个非常有用的工具,我真的很想尝试一下。希望这可以在办公室中的另一台PC上运行,但我仍然希望能让它在我的办公室工作。

有什么想法吗?

3 个答案:

答案 0 :(得分:9)

VADump很旧,大约2000年。该工具的图形等价物被主动维护,称为VMMap:http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx

答案 1 :(得分:4)

最后,我设法从这里下载了更新版本的VADump:

http://go.microsoft.com/fwlink/?LinkId=149683

它现在运行,但不是没有在有用的东西之前喷出各种垃圾......

C:\Program Files\Resource Kit>VADUMP.EXE -sop 7240
Error: Heap ShareCount > 1, 0x00271000
Error: Private ShareCount > 1,  0x3400000
Error: Private ShareCount > 1,  0x3402000
Error: Private ShareCount > 1,  0x3403000
Error: Private ShareCount > 1,  0x3404000
Error: Private ShareCount > 1,  0x3405000
Error: Private ShareCount > 1,  0x3406000
Error: Private ShareCount > 1,  0x3408000

...etc...

Catagory                        Total        Private Shareable    Shared
                           Pages    KBytes    KBytes    KBytes    KBytes
      Page Table Pages        49       196       196         0         0
      Other System           127       508       508         0         0
      Code/StaticData       6731     26924      3252      3876     19796
      Heap                   768      3072      3072         0         0
      Stack                   74       296       296         0         0
      Teb                     22        88        88         0         0
      Mapped Data            221       884         0        92       792
      Other Data            4038     16152     16148         4         0

      Total Modules         6731     26924      3252      3876     19796
      Total Dynamic Data    5123     20492     19604        96       792
      Total System           176       704       704         0         0
Grand Total Working Set    12030     48120     23560      3972     20588

如果您有兴趣了解应用程序中的内存分配,我建议您阅读我在原始问题中指出的文章。

答案 2 :(得分:4)

我的建议是先将CD放到自己的目录中。

举例说明:

C:\>"c:\Program Files\Resource Kit\VADUMP.EXE" -s -p 7404
OpenProcess Failed c0000034

C:\>cd "c:\Program Files\Resource Kit"

C:\Program Files\Resource Kit>VADUMP.EXE -s -p 7404

Total  Image Commitment 229154816
    READONLY:           36380672
    READWRITE:           4022272
...