1

了解异常代码后,有没有办法进一步了解引发的实际异常意味着什么?

我有问题的例外:0x64487347

异常地址:0x1

调用堆栈不显示任何信息。

我正在查看崩溃的 .dmp,但实际上并未在 Visual Studio 中进行调试。

4

3 回答 3

6

从 Microsoft 运行时抛出的真正 C++ 异常将具有 0xe06d7363 (E0 + 'msc') 的 SEH 代码。你还有其他一些例外。

.NET 使用代码 0xe0434f4d (E0 + 'COM') 生成 SEH 异常。

NT 的状态码记录在 ntstatus.h 中,一般从 0x80(警告)或 0xC0(错误)开始。最著名的是0xC0000005,STATUS_ACCESS_VIOLATION。

于 2008-09-15T14:29:17.367 回答
4

因为您正在查看故障转储,所以我假设它来自客户,您无法通过更多工具轻松重现故障。

除了注意异常代码 0x64487347 是 ASCII“dShG”之外,我没有太多帮助,开发人员在制作这样的幻数时经常使用例程或故障条件的首字母。

稍微用谷歌搜索一下,在适当的上下文中找到了一个 dHsg,这是在 Google 图书搜索“使用 Visual C++ 6”中的函数名称,作者是 Kate Gregory。不幸的是,仅此一项并没有帮助。

于 2008-09-14T16:13:31.930 回答
0

如果您知道哪个块引发了异常,您可以在 catch 块中放置更多特定的处理程序来尝试以这种方式隔离它吗?

您是否抛出了自己滚动的异常?

编辑:我忘了向你指出这篇关于 Visual C++ 异常的文章,我发现它非常有用。

于 2008-09-14T15:59:08.157 回答