我正在研究为托管进程创建转储文件。
我知道可以使用windbg来创建转储文件,但我想知道是否有任何特殊的标志应该传递给“.dump”命令,因为它是托管应用程序而不是本地应用程序。
一个相关的附加问题:我听说过一个叫做mscordmp.exe的工具(如果你在谷歌上搜索,你可以在网上找到它的提及)。mscordmp仍然相关吗?我无法在任何地方找到它的下载点,但我认为它可能比windbg更适合转储托管内存。
我正在研究为托管进程创建转储文件。
我知道可以使用windbg来创建转储文件,但我想知道是否有任何特殊的标志应该传递给“.dump”命令,因为它是托管应用程序而不是本地应用程序。
一个相关的附加问题:我听说过一个叫做mscordmp.exe的工具(如果你在谷歌上搜索,你可以在网上找到它的提及)。mscordmp仍然相关吗?我无法在任何地方找到它的下载点,但我认为它可能比windbg更适合转储托管内存。
不,没有任何与托管应用程序相关的特殊标志,windbg只创建内存转储,它是原始数据。你的分析工具的目的是知道你的转储是为托管应用程序还是非托管应用程序创建的。
如果谈到分析托管应用程序,可以采取以下步骤:
windbg
附加到运行托管应用程序的进程上.dump /ma <outputfilename.dmp>
。它会创建转储文件,这个操作可能需要几分钟,具体取决于进程消耗的内存。 /ma
标志命令创建带有所有选项启用的附加进程的完整内存转储(它不是完整的系统转储,只是附加的进程)。windbg
中进行分析。windbg
扩展。附注:使用 .load sos.dll
启用 sos.dll 可能会出现问题,在这种情况下,您可以尝试使用 .loadby sos mscorwks
。