首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调试VB6崩溃?

如何调试VB6崩溃?
EN

Stack Overflow用户
提问于 2011-06-09 12:53:24
回答 1查看 2.7K关注 0票数 2

我有一个应用程序,一旦编译后运行得很好。然而,如果我在VB6环境中启动它,它会不断地、相当随机地使集成开发环境崩溃,但只有当我对应用程序采取行动时(例如,将鼠标移到它上,单击某物,移动窗口,等等)。

这个应用程序做了很多与VB6无关的事情: SIP,虚拟声卡接口,音频编码/解码,etc...so它可能是这样的,但崩溃似乎是如此随机。

崩溃总是发生在vba6.dll模块中(至少崩溃对话框是这么说的)。鉴于MS不再支持VB6,我该如何对其进行调试?

我已经在XP和Win7上试过了,结果是一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-09 15:09:27

很可能某些API/DLL函数与VB IDE不兼容。我们有时为IDE和EXE编写不同的代码,因此我们的windows子类化和API绘图函数位于另一个dll (或ocx)中,以避免崩溃。此外,我们在我们的软件中使用GPF处理程序(SetUnhandledExceptionFilter和相关的API函数),但这只在EXE中打开-无论如何都不能在集成开发环境中工作。我们的GPFs主要发生在EXE中:)

为了调试,你可以排除一些代码路径,特别是与windows消息传递/子类化、全局钩子、绘图和API回调相关的代码路径。你可以安装一些更好的调试器(即使VC是可用的)来查看调用堆栈-有时这包括系统函数名称,暗示错误操作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6288247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档