由于我们的一些代码的遗留性质,我们仍然使用Microsoft Visual 6.0(SP6)。当我第一次附加到正在运行的进程来调试它时,它不知道当我进入进程时源文件的位置。因此,它要求我在给定源文件名的情况下导航到源树中的相应目录。它会记住这些目录,所以我不必两次输入同一个目录,但它仍然很痛苦。
有没有办法在我的树中预先配置VC6和所有源文件目录?请注意,我们的项目是使用makefile(使用nmake)而不是通过DSP构建的。
答案 0 :(得分:1)
源文件的路径记录在调试信息(程序数据库,.pdb)中。使机器上的构建树与构建它的机器相同。
答案 1 :(得分:0)
是。
进入
工具
选项
目录(标签)
您可以设置SOURCES / LIBRARIES / INCLUDE目录位置。这些值适用于工作区内的所有项目。
我不知道设置这些值是否允许使用直接makefile查看信息。
答案 2 :(得分:0)
绝对路径信息未记录在我们的PDB文件中,因为我们故意不想将源树绑定到特定的顶级目录;在部署时,不可能将源树放在与构建机器上使用的位置相同的位置。
EvilTeach的solution肯定会产生预期的效果,尽管我们的源代码树包含数百个目录,这使得手动输入它们有些麻烦。还有一个问题是,开发人员可能在任何给定时间都有多个源树,因此在调试给定的可执行文件时能够在这些树之间切换是必不可少的。
我随后发现您可以通过直接更新注册表以编程方式(至少从命令行)切换一组源目录:
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Devstudio\6.0\Build
System\Components\Platforms\Win32 (x86)\Directories]
"Source Dirs"="<path1>;<path2>"
这不是太糟糕,肯定会做到这一点。
但是,我解决的解决方案是将SOURCE环境变量设置为包含所有源路径(作为以分号分隔的目录列表)。一个非常简单的批处理文件可以做到这一点,并允许在不同树之间切换。然后,从命令行运行Visual C ++,使用从环境读取SOURCE(和INCLUDE,LIB和PATH)的选项:
msdev /useenv
在“工具” - >“选项”下查看,您将看到来自SOURCE的目录确实已加载。然后我能够连接到正在运行的进程,调试器能够找到我调试的任何代码。
生活变得那么容易了!