在VB6中获取堆栈跟踪

Ang*_*ker 3 c++ vb6 stack-trace

不要鞭打 ,但我发现CodePlex上的一个项目叫StackWalker,它提供了原生应用程序的堆栈跟踪(C++应用程序).对现代C++不太了解,这对VB6应用程序也有用吗?VB6的功能是否与C++中的功能有所不同?

Han*_*ant 6

这首先取决于您如何构建您的vb6应用程序.Project + Properties,Compile选项卡.确保选中"编译为本机代码"单选按钮.并打开"创建符号调试信息"选项,此工具需要PDB才能提供有用的堆栈跟踪.请注意,当您从IDE运行代码时,它将无法正常工作,而这些代码始终构建为p代码.

更难的问题是调试msvbvm60.dll(VB6虚拟机)的信息.您运行的大多数代码都会通过此支持DLL,即使您构建为本机代码也是如此.Microsoft符号服务器不再提供您需要的PDB.不知道为什么,可能是因为它真的是一匹死马.

  • 您可以从Windows XP SP3 Symbol包文件柜文件(大约250MB)获得6.0.98.2 MSVBVM60.DLL(XP SP3附带的那个)MSVBVM60.PDB. (5认同)