當我在VMMap中查看我的進程時,可以看到內存映射文件的文件名。我現在正在分析WinDbg中的內存轉儲,並想知道內存映射文件的文件名。我如何從WinDbg或.dmp文件找到它?如何在WinDbg中查找內存映射文件的名稱?
3
A
回答
2
基本上,一旦設法獲得內存映射文件的句柄,就可以使用!handle <address> 0xF
命令查看一些相關數據(包括其名稱)。
如果您沒有特定的句柄,但只想查看過程中現有內存映射文件的名稱,則可以使用以下命令:!handle 0 0x4 Section
。
原本應該爲你提供類似這樣的輸出:
Handle 6bc
Name \BaseNamedObjects\NLS_CodePage_862_3_2_0_0
Handle 6cc
Name \BaseNamedObjects\MyMap
Handle 794
Name \BaseNamedObjects\Cor_Private_IPCBlock_v4_4092
Handle 798
Name \BaseNamedObjects\Cor_SxSPublic_IPCBlock_4092
Handle 7cc
Name \BaseNamedObjects\ShimSharedMemory
5 handles of type Section
如果你想查看的實際文件名,你可以在一個內核調試器發出!handle
命令查看系統中的對象的一些信息對應於您的文件句柄。
例如:
lkd> !handle 0 0x3 2c4 File
Searching for Process with Cid == 2c4
Searching for handles of type File
PROCESS 89242da0 SessionId: 0 Cid: 02c4 Peb: 7ffdd000 ParentCid: 0b48
DirBase: 0a640dc0 ObjectTable: e1c361d0 HandleCount: 83.
Image: ConsoleApplication1.exe
Handle table at e11f6000 with 83 entries in use
000c: Object: 86a74868 GrantedAccess: 00100020 (Inherit) Entry: e11f6018
Object: 86a74868 Type: (89e2a730) File
ObjectHeader: 86a74850 (old version)
HandleCount: 1 PointerCount: 1
Directory Object: 00000000 Name: \Foo\Bar {HarddiskVolume2}
06d0: Object: 8669c4b8 GrantedAccess: 00100083 Entry: e11f6da0
Object: 8669c4b8 Type: (89e2a730) File
ObjectHeader: 8669c4a0 (old version)
HandleCount: 1 PointerCount: 1
Directory Object: 00000000 Name: \wubildr {HarddiskVolume1}
06d4: Object: 86bf1f58 GrantedAccess: 00120089 Entry: e11f6da8
Object: 86bf1f58 Type: (89e2a730) File
ObjectHeader: 86bf1f40 (old version)
HandleCount: 1 PointerCount: 1
Directory Object: 00000000 Name: \WINDOWS\assembly\pubpol6.dat {HarddiskVolume1}
06dc: Object: 892c43e0 GrantedAccess: 00120089 Entry: e11f6db8
Object: 892c43e0 Type: (89e2a730) File
ObjectHeader: 892c43c8 (old version)
HandleCount: 1 PointerCount: 1
Directory Object: 00000000 Name: \WINDOWS\assembly\NativeImages_v4.0.30319_32\index1fe.dat {HarddiskVolume1}
06ec: Object: 892cf1f8 GrantedAccess: 00100001 Entry: e11f6dd8
Object: 892cf1f8 Type: (89e2a730) File
ObjectHeader: 892cf1e0 (old version)
HandleCount: 1 PointerCount: 1
+0
您可以在沒有處理打開的部分的情況下映射部分。 – wj32 2010-11-20 08:26:31
3
解決-f:FileMap
你可以看到地址文檔來了解您可以用於優化輸出其它標誌的詳細信息!
-scott
+0
我認爲正確的標誌是-f:FileMap,否則+1 – 2012-07-26 08:03:37
相關問題
- 1. 內存映射庫的文件名osx
- 2. 如何檢查內存映射文件是否存在?
- 3. 內存映射文件C++
- 4. Windows內存映射文件
- 5. 內存映射文件.NET
- 6. 如何查找內存映射文件的流指針(使用boost)?
- 7. 如何在NHibernate映射類中查找未映射的屬性?
- 8. 在Excel中查找工作表名稱映射
- 9. 如何檢查內存區域是否映射到文件?
- 10. 內存映射文件 - 映射結構而不是文件?
- 11. 何時使用內存映射文件?
- 12. 文件系統 - 內存映射文件
- 13. 內存映射,文件在Windows
- 14. 內存映射文件在ASP.NET
- 15. 如何確保內存映射文件始終在RAM中
- 16. 如何在android中讀取tensorflow內存映射圖文件?
- 17. 在窗口中查找內存映射對象的列表
- 18. 如何查找正在加載特定的dll和映射文件的內容?
- 19. 如何共享內存映射文件中的列表值
- 20. 內存映射文件的使用
- 21. C++:內存映射文件上的Fetch_add
- 22. 內存映射文件的位置
- 23. numpy數組的內存映射文件
- 24. 內存映射文件的Java NIO
- 25. 在txt文件中查找名稱
- 26. 如何在ASP.NET中查找當前頁面的(文件)名稱?
- 27. 如何將非英文Windows時區名稱映射到Python中的Olsen名稱?
- 28. 查找目錄中文件的名稱
- 29. 截斷內存映射文件
- 30. 追加到內存映射文件
這是託管代碼還是本機代碼? – 2010-11-19 18:57:55
它混合。映射文件的代碼不是託管代碼。這是一個本地dll。 – Sean 2010-11-19 19:04:26