VB6调试 - 编译

时间:2016-07-01 15:00:41

标签: vb6 windbg tracing

我的情况是我在我工作的地方支持VB6应用程序,并且在过去的几周里,它比以往任何时候都更频繁地崩溃。它使用本地Access MDB数据库和远程SQL Server DB来实现不同类型的存储。好消息是我们正在编写一个替代应用程序,在此期间我需要支持这个频道的乐队新闻,并且供应商已经远离这个世界。

我可以尝试哪些方法来诊断导致崩溃的原因?例如,到目前为止,我已尝试在客户端PC上进行ODBC跟踪(对于MDB组件),SQL事件探查器跟踪和ProcMon。

还有什么我可以尝试发现应用程序在崩溃时试图做的事情吗?

1 个答案:

答案 0 :(得分:2)

您也可以从调试器开始。

windbg或ntsd(ntsd是一个控制台程序,可能已安装)。两者都来自Windows调试工具。

下载并安装适用于Windows的调试工具

http://msdn.microsoft.com/en-us/windows/hardware/hh852363

安装Windows SDK,但只需选择调试工具。

在C:\

中创建名为Symbols的文件夹

启动Windbg。文件菜单 - 符号文件路径并输入

srv*C:\symbols*http://msdl.microsoft.com/download/symbols

然后

windbg -o -g -G c:\windows\system32\cmd.exe /k batfile.bat

您可以按F12停止它,kb将显示调用堆栈(g继续程序)。如果出现错误,它也会停止并显示它们。

键入lm列出已加载的模块,x *!*列出符号,bp symbolname设置断点

使用db address(与db 01244中一样,查看该内存中的内容。

如果在VB6中编程,则此环境变量link=/pdb:none将符号存储在dll中而不是单独的文件中。确保使用No Optimisations编译程序并勾选Create Symbolic Debug Info框。两者都在项目属性的“编译”选项卡上。