C ++异常代码查找
时间:2020-03-05 18:53:00 来源:igfitidea点击:
知道异常代码,是否有办法找出有关引发的实际异常的更多信息?
我的例外情况:
0x64487347
例外地址:0x1
调用堆栈不显示任何信息。
我正在查看崩溃的.dmp文件,而不是在Visual Studio中实际调试的。
解决方案
回答
如果我们知道哪个块引发了异常,是否可以在catch块中放置更多特定的处理程序,以尝试将其隔离?
我们是否抛出了自己滚动的异常?
编辑:我忘了向我们介绍有关Visual C ++异常的这篇文章,我发现它非常有用。
抢
回答
因为我们正在查看故障转储,所以我认为它是来自客户的,我们无法使用更多的工具轻松地重现故障。
需要注意的是,异常代码0x64487347是ASCII" dShG",因此我没有太多帮助。开发人员在编写像这样的幻数时经常使用例程的缩写或者故障条件。
在适当的情况下,稍稍谷歌搜索就找到了dHsg,这是Kate Gregory在Google图书搜索"使用Visual C ++ 6"中使用的函数名称。不幸的是,仅此一项无济于事。
回答
从Microsoft的运行时引发的真正C ++异常的SEH代码为0xe06d7363(E0 +'msc')。我们还有其他例外。
.NET生成代码为0xe0434f4d(E0 +'COM')的SEH异常。
NT的状态代码记录在ntstatus.h中,通常以0x80(警告)或者0xC0(错误)开头。最著名的是0xC0000005,STATUS_ACCESS_VIOLATION。