VB6调试-编译

VB6调试-编译,vb6,windbg,trace,Vb6,Windbg,Trace,我的情况是,我正在工作的地方支持一个VB6应用程序,在过去的几周里,它开始比以前更频繁地崩溃。对于不同类型的存储,它同时使用本地Access MDB数据库和远程SQL Server DB。好消息是,我们正在编写一个替代应用程序,乐队新闻我需要同时支持这个应用程序,而供应商早已离开这个世界 我可以通过哪些方法来诊断是什么导致了撞车?例如,到目前为止,我在客户端PC上尝试了ODBC跟踪(针对MDB组件)、SQL探查器跟踪和ProcMon 还有什么我可以尝试发现应用程序在崩溃时尝试执行的操作吗?您也可

我的情况是,我正在工作的地方支持一个VB6应用程序,在过去的几周里,它开始比以前更频繁地崩溃。对于不同类型的存储,它同时使用本地Access MDB数据库和远程SQL Server DB。好消息是,我们正在编写一个替代应用程序,乐队新闻我需要同时支持这个应用程序,而供应商早已离开这个世界

我可以通过哪些方法来诊断是什么导致了撞车?例如,到目前为止,我在客户端PC上尝试了ODBC跟踪(针对MDB组件)、SQL探查器跟踪和ProcMon


还有什么我可以尝试发现应用程序在崩溃时尝试执行的操作吗?

您也可以在调试器中启动

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

下载并安装Windows调试工具

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

在C中创建名为Symbols的文件夹:\

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

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

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

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

使用
db address
(如
db 01244
中所示)查看内存中的内容


如果在VB6中编程,则此环境变量
link=/pdb:none
将符号存储在dll中,而不是单独的文件。请确保在编译程序时未进行优化,并勾选“创建符号调试信息”框。这两个选项都位于项目属性的“编译”选项卡上。

您也可以在调试器中启动

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

下载并安装Windows调试工具

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

在C中创建名为Symbols的文件夹:\

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

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

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

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

使用
db address
(如
db 01244
中所示)查看内存中的内容


如果在VB6中编程,则此环境变量
link=/pdb:none
将符号存储在dll中,而不是单独的文件。请确保在编译程序时未进行优化,并勾选“创建符号调试信息”框。这两个变量都位于项目属性的“编译”选项卡上。

它从未给出任何错误消息?挂起即可s或消失?单用户还是多用户?它给出的错误太模糊。如果存在VB6错误,则不会显示。多个用户(每个用户都有本地MDB和中央SQLI)可能会怀疑访问损坏,但不太可能跨多个本地数据库发生。这会让我想到一个最近发布到mor的更新e和更多计算机或SQL server的某种新的网络问题未得到处理。您说VB6错误未显示,但您显然看到“模糊”错误到底是什么?它们都赢了7 64台电脑吗?它从不给出任何错误消息?只是挂起或消失?单用户还是多用户?它给出的错误太模糊了。如果存在VB6错误,则不会显示。多个用户,每个用户都有本地MDB和中央SQLI,可能会怀疑访问损坏,但不太可能跨多台电脑发生本地数据库。这会让我想到最近的更新已经被越来越多的机器使用,或者SQL server出现了某种新的网络问题,但没有得到处理。你说没有显示VB6错误,但你显然看到了“模糊”这些错误是什么?它们都赢了764台电脑吗?对不起,我应该说得更清楚一些。我没有这个应用程序的源代码来用符号重新编译它。没有,但windows将使用它自己的符号来调用它自己的调用。一个程序90%的时间都用在windows代码中。一个VB程序的大部分剩余时间都用在VB运行时中。有因此,您的代码占代码运行量的百分之几。VB运行时可以使用符号。Windbg将下载windows符号。符号使live double plus更容易,但不是必需的。此外,您将获得崩溃详细信息以及崩溃的位置。成功的可能性很小,但会回答您的问题-它在哪里崩溃?.tHankyu@Lakets听起来很有道理。我按照你的建议安装并运行了windbg。在活动点上,我似乎只得到了一些“未知异常-代码c000008f(first chance)”,我的前几次谷歌搜索都没有用。明天我会继续使用它(最近几周情况不好,因此回复上存在差距)@面条符号可用于VB6运行时(Msvbvm60.dll)?我从未见过从MS symbol服务器下载的符号。这些符号可用于哪个版本的Msvbvm60.dll?很抱歉,我应该说得更清楚。我没有此应用程序的源代码来用符号重新编译它。没有,但windows将使用它自己的符号进行自己的调用。一个程序90%的时间都在windows中代码。VB程序的大部分剩余时间都花在VB运行时。因此,您的代码占代码运行时间的百分之几。符号可用于VB运行时。Windbg将下载windows符号。符号使live更容易,但不是必需的。此外,您将获得崩溃详细信息以及崩溃的位置。没有什么成功的可能性