VB6的IDE调试虽方便,但是缺陷也很多,代码位于同一进程,容易因异常导致IDE崩溃、无法多线程调试、窗口子类化后进入中断模式会导致IDE无响应。难道调试要用OD来反汇编吗?不仅对调试者的门槛要求高,而且反汇编式的调试的效率比源代码级的调试低很多。而本文主要讲VB6与VC混编模式(exe+dll)的源代码调试技巧之一:用vs调试vb6的程序。成功将vb6程序载入vs后,就可以在源代码级进行线程、调用堆栈、反汇编、中断、单步、变量查看、监视等等调试方法。
一、准备工作
开发环境:VisualStudio、VB6.0。本文中使用的是vs2013 update5
工程属性中将vb6的编译参数添加上“产生符号化调试信息”,其它编译参数不变,也可以根据自己的需要设置。这样,编译后会生成名为*.pdb的符号文件,里面包含了源代码文件的路径、程序中所有的符号以及调试信息。
设置好后重新编译,生成exe或者dll,在生成的文件目录中会有*.pdb文件
二、添加解决方案
如果是只调试exe则可以新建空白解决方案,如果还有vc的dll工程则可以在现有dll工程所在的解决方案中再添加个项目即可。
然后将从vb6生成出来的exe添加到解决方案,注意:无论exe在哪个目录,pdb必须和exe位于同一目录,这样才能让VS自动加载符号。添加exe时一定从文件菜单中添加,不要从解决方案中右键添加。文件