1

我试图找出 Windows 错误报告的保存位置;我今天早些时候点击了发送,但我忘记了我想“查看详细信息”,以便我可以检查内存小型转储。

但我找不到它们的存储位置(谷歌也不知道)。

所以我想编写一个会崩溃的虚拟应用程序,显示 WER 对话框,让我单击“查看详细信息”,这样我就可以进入保存转储的文件夹。

我如何在 Windows 上崩溃?

编辑:我问的原因是因为我试过溢出堆栈,浮点除以零。Stack Overflow 使应用程序消失,但没有弹出 WER 对话框。浮点除以零导致 +INF,但没有异常,也没有崩溃。

4

7 回答 7

6

你们都太啰嗦了!:-)

这是一种紧凑的方法:

*((int*)0)=0;
于 2010-07-15T08:12:17.220 回答
3

应该是一个好的开始:

int main(int argc, char* argv[])
{
   char *pointer = NULL;
   printf("crash please %s", *pointer);
   return 0;
}
于 2010-04-28T14:47:36.433 回答
1

您假设内存转储仍然存在。一旦它们被发送,AFAIK 转储就会从机器中删除。

转储本身应该位于 %TEMP% 的某个地方。

至于崩溃,这并不难,只需做一些导致段错误的事情。

于 2010-04-28T14:42:30.643 回答
1
void crash(void)
{
    char* a = 0;
    *a = 0;
}
于 2010-05-03T21:52:58.300 回答
0

不确定这是否会触发错误报告对话框,但您可以尝试除以零。

于 2010-04-28T14:48:24.593 回答
0

官方支持的故意触发崩溃的方法可以在这里找到:

http://msdn.microsoft.com/en-us/library/ff545484(v=VS.85).aspx

基本上:

对于 USB 键盘,您必须在注册表中启用键盘启动的崩溃。在注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters 中,创建一个名为 CrashOnCtrlScroll 的值,并将其设置为 REG_DWORD 值 0x01。

然后:

您必须重新启动系统才能使这些设置生效。

完成此操作后,可以使用以下热键序列启动键盘崩溃:按住最右边的 CTRL 键,然后按两次 SCROLL LOCK 键。

无需编程;)这里没有轮子改造:)

于 2011-01-17T21:17:05.550 回答
0

有趣的是知道如何使 Windows 崩溃。但是为什么不看看

%allusersprofile%\Application Data\Microsoft\Dr Watson\ 

第一的?寻找特定于应用程序的崩溃数据文件夹,我发现例如

...\FirefoxPortable\Data\profile\minidumps\ 

...\OpenOfficePortable\Data\settings\user\crashdata\.
于 2011-01-17T21:34:47.050 回答