![](/img/trans.png)
[英]How do I dump the .NET process so that Visual Studio 2008 will load it as a managed dump?
[英]How do I take a good crash dump for .NET?
我捕獲了在64位Windows操作系統上運行的32位.NET應用程序的故障轉儲。 在分析過程中,有人發現我有一個64位轉儲並告訴我由於錯誤的位數而無法分析這個轉儲。
使用Windows任務管理器創建轉儲時,我不知道我做錯了什么。 這始終適用於32位操作系統。
我怎樣才能為.NET提供良好的轉儲,尤其是正確的位數?
對於.NET應用程序而言,這一點很重要,原因如下:
將轉儲從64位轉換為32位是不可能的,盡管理論上它應該包含所有必要的信息。
如果你感到幸運,你也可以嘗試一些指示
如果你不知道它的位數,你可以這樣找到它:
Windows 7任務管理器在進程上顯示*32
:
在Windows 8任務管理器中,轉到“ Details
選項卡並添加名為“ Platform
的列:
Visual Studio在附加到進程時顯示位數:
可以將Process Explorer配置為顯示“ Image Type
列:
自動檢測位數的程序:
捕獲具有特定位數的轉儲的工具:
-64
命令行開關運行 只需根據您的應用選擇位數,而不是根據操作系統。
對於.NET,您需要一個完整的內存轉儲,否則您無法弄清楚對象的內容。 要包含完整內存,請執行以下操作:
.dump
時指定/ma
-ma
命令行開關 DumpType
設置為2
我發現很多開發人員甚至都不知道Visual Studio可以創建轉儲。 原因可能是菜單長時間不可見。 這些是步驟:
可能僅用於調試WoW64層本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.