我正在Visual Studio 2008中编写一个C ++ COM对象,它是一个Internet Explorer浏览器帮助程序对象。最近,当在IE中运行时,IE已经开始频繁弹出一个名为“Microsoft Visual C ++运行时库”的对话框,并显示错误消息“运行时错误!”并继续说“应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。”与通常情况不同,此对话框只有一个OK按钮但没有调试按钮,因此IE终止并且我不会留下如此多的堆栈跟踪,甚至是我的代码的哪个部分可能如此错误。我不确定我的代码中的 where 是否正在崩溃。
如何解决“运行时错误”问题?运行时错误的可能原因是什么? (或许与内存相关的错误?)我应该检查我的代码以试图消除这种崩溃会出现什么样的问题?我需要一些关于如何解决这个问题的想法,这有点难以捉摸。
答案 0 :(得分:4)
当您看到该对话框时,请使用您的COM对象项目启动VS2008。 然后使用菜单Debug-> Attach to process将调试器附加到加载了COM对象的IE进程。 然后进入进程(Debug-> break all),然后获得堆栈跟踪。
答案 1 :(得分:3)
由于未处理的异常导致爆炸。这使您有机会使调试器在第一次机会异常时停止,就在它被引发的位置。打开你的项目,使iexplorer.exe成为启动程序。 Debug + Exceptions,检查非托管异常的Thrown标志。让它崩溃以获得断点。