Предварительная настройка местоположений для поиска исходных файлов в Visual C++ 6.0

Из-за унаследованного характера нашего кода мы все еще используем Microsoft Visual 6.0 (SP6). Когда я присоединяюсь к запущенному процессу, чтобы отладить его впервые, он не знает, где находятся исходные файлы, когда я врываюсь в процесс. Поэтому он просит меня перейти к соответствующему каталогу в моем исходном дереве, учитывая имя исходного файла. Он запоминает эти каталоги, поэтому мне не нужно заходить в один и тот же каталог дважды, но это все равно больно.

Есть ли способ предварительной настройки VC6 со всеми каталогами исходных файлов в моем дереве? Обратите внимание, что наш проект построен с использованием make-файлов (с использованием nmake), а не с помощью DSP.

3 ответа

Пути к исходным файлам записываются в отладочной информации (Program Database, .pdb). Создайте дерево сборки на своем компьютере так же, как и на компьютере, на котором оно было построено.


Да.
войти в


ИНСТРУМЕНТЫ
ОПЦИИ
КАТАЛОГ (вкладка)

и вы можете установить каталоги SOURCES/LIBRARIES/INCLUDE. Эти значения применяются ко всем проектам в рабочей области.


Я не знаю, позволит ли установка этих значений просматривать информацию с использованием прямых make-файлов.

Информация об абсолютном пути не записывается в наших файлах PDB, поскольку мы намеренно не хотим связывать наше дерево исходников с определенным каталогом верхнего уровня; при его развертывании невозможно отбросить исходное дерево в том же положении, которое использовалось на сборочном компьютере.

EvilTeach, безусловно, дает желаемый эффект, хотя наше дерево исходных EvilTeach состоит буквально из сотен каталогов, что делает их ввод вручную несколько обременительным. Существует также проблема, заключающаяся в том, что разработчик может иметь несколько исходных деревьев, из которых они запускаются в любой момент времени, поэтому возможность переключения между этими деревьями при отладке заданного исполняемого файла является существенной.

Впоследствии я обнаружил, что вы можете программно (ну, по крайней мере, из командной строки) переключать набор исходных каталогов, непосредственно обновляя реестр:

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

Посмотрев в Tools->Options, вы увидите, что каталоги из SOURCE действительно загружены. Затем я смог подключиться к работающему процессу, и отладчик смог найти любой код, в котором я отлаживал.

Жизнь стала намного проще!

Другие вопросы по тегам