如何跟踪COM对象异常?

如何跟踪COM对象异常?

How to trace COM objects exceptions?

我有一个包含一些COM对象的DLL。 有时,此对象崩溃,并在Windows事件日志中注册带有许多十六进制信息的错误事件。 我不知道为什么会发生崩溃。

因此,如何跟踪那些COM对象异常?


第一步是查找失败代码的十六进制值(例如E_FAIL 0x80004005)。我非常幸运地在Google中发布了该值,以了解错误代码的含义。

然后,我只是使用反复试验来尝试找出失败代码中的位置以及失败的根本原因。


COM对象不会引发异常。它们返回HRESULT,大多数表示失败。因此,如果您正在寻找与异常堆栈跟踪等效的选项,那么您就不走运了。您将需要手工遍历代码并弄清楚发生了什么。


查找错误(结果)代码的一种好方法是HResult Plus或welt.exe(Windows错误查找工具)。

我在COM类内部使用日志记录来查看发生了什么。同样,一旦可执行文件加载了COM类,您就可以将VS调试器附加到它上,并使用断点,监视和所有有趣的东西调试COM代码。


如果您只想以一种非常快速的方式找出错误代码的含义,则可以使用Visual Studio附带的"错误查找"工具(此处有详细信息)。输入十六进制值,它将为您提供描述该错误代码的字符串。

当然,一旦知道了这一点,您仍然必须弄清楚它为什么会发生。


推荐阅读

    确定java按钮响应事件的代码

    确定java按钮响应事件的代码,,* 阅读本文可以结合最后在java登录窗口界面下面是一个链接。 是定义的容器。 容器(CP =得到内容面板); / /

    开启电脑debug日志|打开debug

    开启电脑debug日志|打开debug,,1. 打开debug1、在黑屏状态是无法打开USB开关的。如果手机出现黑屏情况,建议长按电源键(部分机器需同时按住

    90后瓶门事件图片

    90后瓶门事件图片,,现在孩子们还太早,有些女孩子总是在门口等一会儿,最近发生了一次酒瓶门事件。 近日,山东一家寄宿学校的一名女生带着一瓶

    Python之可迭代对象、迭代器、生成器

    Python之可迭代对象、迭代器、生成器,迭代,生成器,一、概念描述可迭代对象就是可以迭代的对象,我们可以通过内置的iter函数获取其迭代器,可

    应用程序对象

    应用程序对象,,应用程序对象是一个应用程序级对象,用于在所有用户之间共享信息,并且在Web应用程序运行期间可以保存数据。 应用的性质: 方法

    跟踪电脑意义|怎么追踪电脑

    跟踪电脑意义|怎么追踪电脑,,怎么追踪电脑  笔记本丢了,如果之前没有下载跟踪软件是不能找回来的,如果有下载的话就可以找回,但是要保证电

    如何查看与分析IIS服务器日志

    如何查看与分析IIS服务器日志,日志,网站,本文目录如何查看与分析IIS服务器日志什么是网站日志分析需要分析哪些内容如何查看服务器日志如