在VB6中获取堆栈跟踪

Getting the stack trace in VB6

本文关键字:堆栈 跟踪 获取 VB6      更新时间:2023-10-16

并非孤注一掷,但我在CodePlex上发现了一个名为StackWalker的项目,它为本机应用程序(C++应用程序)提供堆栈跟踪。对现代C++不太了解,这对VB6应用程序也适用吗?VB6函数与C++中的函数有什么不同吗?

这首先取决于如何构建vb6应用程序。Project+属性,"编译"选项卡。确保选中"编译为本机代码"单选按钮。如果选中"创建符号调试信息"选项,该工具需要PDB来提供有用的堆栈跟踪。请注意,当您从IDE运行代码时,它不会很好地工作,因为IDE总是根据p代码构建的。

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