我想爲.Net C#應用程序創建崩潰轉儲。 爲此,我寫了這將崩潰的堆棧溢出異常的應用代碼:procdump不爲StackOverflow創建轉儲異常
namespace Crashme
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
System.Threading.Thread.Sleep(2000);
}
Console.WriteLine("Calling text");
crash obj = new crash();
obj.sMyText = "abc";
}
}
class crash
{
public string sMyText
{
get { return sMyText; }
set { sMyText = value; }
}
}
}
的procdump命令我使用:
.\procdump.exe -ma -e crashme.exe crash_dump1.dmp
預期該應用程序崩潰和procdump方興未艾它也。我可以在procdump監視控制檯打印中看到。 但沒有轉儲正在創建。
猜猜我沒有使用正確的procdump命令。有人可以幫忙嗎?
我計算出,使用procdump -ma -e -t crashme.exe crash_dump1.dmp是創建轉儲文件給我。但是當我嘗試使用Visual Studio 2010進行調試時,我找不到任何進一步的信息,因爲它總是返回程序集而不是指出錯誤的行號和模塊。你能幫我解決嗎? – Kallol
我在想,使用-t可能爲時已晚,無法獲得有用的轉儲文件。 -t \t進程終止時寫入轉儲。 您希望在發生堆棧溢出異常時獲取轉儲文件。 – Derek
就像我說的,你可能需要在sysinternals論壇發帖或者開始學習adplus(並且在我的答案中使用鏈接來處理StackOverflowException)。 – Derek