Предварительная настройка местоположений для поиска исходных файлов в Visual C ++ 6.0 - PullRequest
2 голосов
/ 30 сентября 2008

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

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

Ответы [ 3 ]

1 голос
/ 01 октября 2008

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

0 голосов
/ 06 октября 2008

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

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

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

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

0 голосов
/ 01 октября 2008


Да.
перейти в


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

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


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

...