【发布时间】:2010-11-09 02:10:09
【问题描述】:
我维护一个用 VB6 编写的旧应用程序。在客户端的环境中,它会引发我无法在调试器下重现的运行时错误。有没有办法获取堆栈跟踪或错误位置?
我的意思是,不要像 here 这样在整个代码中放置跟踪语句,或者像 here 这样的每个过程都添加错误处理程序来记录日志。
这似乎是一个简单的问题。 对不起。 我只是不太了解VB6。 考虑到它被(或曾经)使用的广泛程度,谷歌搜索出任何信息是非常困难的。
【问题讨论】:
-
我问了同样的问题stackoverflow.com/questions/127645/…我确信它做不到。
-
也许我不清楚。我在远程位置有一个生产应用程序。我无法访问该系统,也无法在那里运行调试器。他们的环境中有一些东西会触发运行时错误。除了将显示或转储到日志文件的任何应用程序发送给我之外,我不能指望他们的 IT 人员(更不用说普通用户)真正提供帮助。我需要一些工具、仪器或任何东西,这将帮助我从他们那里获得有意义的输入。是否——正如 raven 所写——在每个例程中编写“On Error GoTo/Reraise/LogError”是唯一的方法?
-
好吧,您可以使用我提到的调试符号进行编译,然后在发生错误时让它们进行内存转储。然后,您将能够加载内存转储并希望使用 Visual Studio 获取堆栈跟踪。
-
“让他们去做”几乎任何事情都是最难的部分。
-
@Ant - 仅当这些是未处理的异常错误而不是内在的 Visual Basic 运行时错误时才有效。从这个问题上看不清楚。
标签: debugging vb6 error-handling stack-trace production-environment