我正在尝试为.Net C#应用程序创建崩溃转储。 为此,我编写了一个代码,它将使Stack Overflow异常的应用程序崩溃:
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命令。有人可以帮忙吗?
答案 0 :(得分:3)
我最近在制作中遇到了堆栈溢出错误。这篇博客文章有捕获它的方法。
基本上你使用这些选项
procdump -accepteula -e 1 -f C00000FD.STACK_OVERFLOW -g -ma <PID> <OUTPUT PATH>
答案 1 :(得分:1)
我认为你正在使用正确的命令。我复制了你的问题。它只是不起作用。您可以尝试在sysinternals论坛上发帖。
http://forum.sysinternals.com/
我还有一个未解决的问题:procdump:
launching procdump from a 64-bit service doesn't work when running as Local Service or Local System
我们公司转而使用adplus。我们感到非常高兴,能够针对不同类型的异常配置不同的操作非常好。
即使使用adplus,看起来也有点棘手。
答案 2 :(得分:-2)
需要先安装procdump并指定转储目录。
procdump.exe -i C:\Path\To\Dumps