VB6调试-编译
VB6 Debugging - compiled
我的情况是我在我工作的地方支持一个 VB6 应用程序,在过去的几周里,它开始比以往任何时候都更频繁地崩溃。它使用本地 Access MDB 数据库和远程 SQL 服务器数据库来进行不同类型的存储。好消息是我们正在编写一个替代应用程序,乐队新闻我需要同时支持这个,供应商早已离开这个世界。
我可以通过哪些方法来尝试诊断导致崩溃的原因?例如,到目前为止,我已经在客户端 PC 上尝试过 ODBC 跟踪(对于 MDB 组件)、SQL Profiler 跟踪和 ProcMon。
还有什么我可以尝试发现应用程序在崩溃时试图做什么吗?
您也可以在调试器中启动。
windbg 或 ntsd(ntsd 是一个控制台程序,可能已安装)。两者也来自 Debugging Tools For 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 中而不是单独的文件中。确保使用无优化编译程序并勾选创建符号调试信息框。两者都在项目属性的“编译”选项卡上。
我的情况是我在我工作的地方支持一个 VB6 应用程序,在过去的几周里,它开始比以往任何时候都更频繁地崩溃。它使用本地 Access MDB 数据库和远程 SQL 服务器数据库来进行不同类型的存储。好消息是我们正在编写一个替代应用程序,乐队新闻我需要同时支持这个,供应商早已离开这个世界。
我可以通过哪些方法来尝试诊断导致崩溃的原因?例如,到目前为止,我已经在客户端 PC 上尝试过 ODBC 跟踪(对于 MDB 组件)、SQL Profiler 跟踪和 ProcMon。
还有什么我可以尝试发现应用程序在崩溃时试图做什么吗?
您也可以在调试器中启动。
windbg 或 ntsd(ntsd 是一个控制台程序,可能已安装)。两者也来自 Debugging Tools For 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 中而不是单独的文件中。确保使用无优化编译程序并勾选创建符号调试信息框。两者都在项目属性的“编译”选项卡上。