我有一个Visual Basic 4 32位应用程序,导致a
Run-time error '5':
Invalid procedure call
Run Code Online (Sandbox Code Playgroud)
我启动WinDbg并做
sxe *
Run Code Online (Sandbox Code Playgroud)
打破所有例外.但是,它会在不破坏调试器之前显示消息.
如果我在消息发生时中断,则callstack不是很有用.在问题发生时,是否有一个闯入Visual Basic 4应用程序的技巧?
问题FAQ:
你可以在IDE中运行它吗?
是的,我可以,当我这样做时,我可以解决这个问题.但是,我想在最终用户运行应用程序时获取更多信息,这样我就不需要能够重现它了.
如果您发现错误原因,您想做什么?
嗯,这取决于错误的类型.也许我可以解决它,也许我不能.通常我会从WinDbg中获得一些非常有用的信息.
什么时候发生错误?
当用户按下表单上的关闭按钮时,它会重复出现.
该应用程序做什么?
哦,这是一个很好的问题.我不知道.它使用RS232通信,但尚未涉及.
您对用户可以输入的数据了解吗?
我几乎一无所知.在这种特殊情况下,没有必要输入数据.
小智 5
错误来自VB虚拟机而不是来自API.我无法看到WinDbg如何在VB4上有用,它被解释并且在P-Code中.
Visual Basic运行时错误5表示以下之一:
如果它是一个API调用VB使用LoadLibrary和GetProcAddress.
一些控件随着时间的推移丢失了默认值,这可能导致第一个.
如果现代技术超出了程序的预期,例如磁盘空间,第三种情况就会发生.
另见(抱歉没有链接,它们在我的硬盘上)
Q131007 HOWTO:在Visual Basic中使用Windows NT WinDbg.exe(适用于NT 3.5)
Q166275 HOWTO:在VC++中调试本机代码Visual Basic组件(在调试器中讨论VB中可以看到的内容)
VB4不能制作符号