有的项目使用 scons 调用的 Visual C++ 编译器编译出的 exe ,无法使用项目解决方案的方式直接调试源码。下面介绍一种使用 Visual Studio 调试 exe 的方法。
首先要准备和 exe 一起编译出的同名 pdb 文件,这个一般在编译完同时输出到了和 exe 相同的目录。
另外,还需要准备编译时的源代码,需要位于当时编译时的相同目录。如果是在本机编译的,这个问题不大,一般源代码已经位于正确的位置了。如果不是在本机编译的,则需要将源代码拷贝到编译时所在的同名目录下。如果不知道编译时源代码所在的目录,则需要在调试时,当弹出选择源文件的提示框时,选择正确的代码路径,这样也可以执行正确的源代码调试。
做好上述准备后,按以下步骤进行。
- 在启动对话框(图1)或者文件菜单(图2)选择“打开项目或解决方案”,然后选择需要调试的exe文件(图3)。另外,由图4我们可以知道,exe也是项目文件的一种。千万不要在文件菜单选择打开文件的方式打开exe ,这将不能调试exe 。
- 在“调试”菜单选择“逐过程”(图5)或者按F10,进入程序入口函数(图6)。也可以切换到源代码视图(图7),程序指针同样指向了源代码中的入口函数。
- 如果想在某个函数中打断点,可以直接在反汇编窗口的地址栏输出函数名(图8),反汇编代码将自动定位到输入的函数起始处。这时就可以按F9在函数的起始位置打断点了。当程序运行到断点位置时,程序会在该函数位置停下(图9),同时也将会打开该函数对应的源文件(图10)。