早上好,
我想知道是否有任何程序可以识别哪个组件导致运行时错误430.我知道足够使用VB6 IDE进行调试,但这是一个奇怪的情况,因为在IDE中不会发生错误。我检查了参考文献和组件,但它们都完好无损。所以我正在寻找可以将自己附加到已编译程序的任何调试程序,并让我了解.DLL组件或.OCX组件导致错误的更多信息。
提前致谢, 约根
更新:感谢所有帮助,我已阅读了您的所有回复。除了spy ++和Process Monitor,我还在考虑使用OllyDbg它有一个名为“可执行模块”的视图,它基本上显示了被调用的DLL。但是,当我在其中运行我的程序时,它会冻结并且不会继续加载GUI。任何熟悉OllyDbg的人都知道为什么会这样?
由于
约根
答案 0 :(得分:3)
假设您拥有所有源代码,您可以将VB6 EXE以及DLL和OCX编译为本机代码,包括符号调试信息,以便创建PDB文件(勾选项目>属性>编译选项卡上的复选框) )。然后,您可以使用WindDbg或Visual Studio .NET来跟踪问题。
WinDbg(http://msdn.microsoft.com/en-us/windows/hardware/hh852365)请参阅以下内容:
或
两种方法都需要在调试机器上的源代码与构建机器上完全相同的路径。最简单的方法是在同一台机器上构建和调试。
答案 1 :(得分:1)
将日志记录添加到应用程序可能更容易 在不使用VB6 IDE的情况下调试possible,但这并不容易 - 我建议记录。
答案 2 :(得分:0)
记录很好也很好但是在您知道从哪里开始之前,它可能会让您在整个地方投掷日志记录的经验很充实。
spy ++是我在调试旧的vb代码时使用的东西以及PView将让我粗略地了解代码失败的地方。然后将日志记录添加到这些区域。
检查Hans Passands的评论。它可能会为你节省一些希望。
答案 3 :(得分:0)
您可以下载" Process Monitor"来自sysinternals:www.sysinternals.com,将过滤器设置为不显示无用的信息,并调查不成功的结果,非常痛苦的工作,但有很好的机会。