我正在努力帮助客户解决问题,但我的想法已经不多了.他们有一个定制的,内部编写的应用程序,按计划运行,但它崩溃了.我不知道它有多久这样,所以我认为我不能将崩溃追溯到任何特定的软件更新.最不幸的是,VB6 DLL中不再包含任何逻辑内容的源代码.
这个VB6 DLL由来自VB脚本的2-3个函数调用启动.显然,我可以修改VB脚本以添加错误记录,但是我没有太多运气获得质量信息来查明崩溃的来源.我已将记录消息放在所有函数调用的任一侧,并确定哪些调用导致崩溃.但是,错误对象中没有返回任何内容,因为调用正在崩溃wscript.exe.
我不确定我能做什么.有任何想法吗?
编辑:我关心的主要原因,即使我没有源代码,可能有一些外部因素导致崩溃(凭据不足,锁定文件等).我检查了由于wscript.exe崩溃而在drwtsn32.log中创建的日志文件,我得到的唯一信息是"访问冲突".
我首先倾向于认为这与安全权限有关,但这也不是内存访问违规吗?
如果您确实认为这是环境问题(如文件权限),则可以考虑使用其中一个Sysinternals工具.我曾经使用Filemon找出我的应用程序正在触摸的所有文件,并发现了一个问题.
您可能还希望使用Dependency Walker进行快速健全性检查,以确保您实际上正在加载您认为自己的DLL文件.我已经看到加载了C运行时的错误版本并导致了一次神秘的崩溃.