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





Пути к исходным файлам записываются в отладочную информацию (База данных программ, .pdb). Сделайте дерево сборки на вашем компьютере таким же, как и на машине, на которой оно было построено.
Да.
войти в
ИНСТРУМЕНТЫ
ОПЦИИ
СПРАВОЧНИК (вкладка)
, и вы можете установить расположение каталога SOURCES / LIBRARIES / INCLUDE. Эти значения применяются ко всем проектам в рабочей области.
Я не знаю, позволит ли установка этих значений увидеть информацию с помощью прямых make-файлов.
Информация об абсолютном пути не записывается в наших файлах PDB, поскольку мы намеренно не хотим привязывать наше исходное дерево к конкретному каталогу верхнего уровня; когда он развернут, невозможно отбросить исходное дерево в то же положение, которое использовалось на машине сборки.
решениеEvilTeach определенно дает желаемый эффект, хотя наше дерево исходных текстов состоит буквально из сотен каталогов, что делает ввод их вручную несколько громоздким. Также существует проблема, заключающаяся в том, что разработчик может иметь несколько исходных деревьев, из которых он запускается в любой момент времени, поэтому очень важно иметь возможность переключаться между этими деревьями при отладке данного исполняемого файла.
Впоследствии я обнаружил, что вы можете программно (ну, по крайней мере, из командной строки) переключать набор исходных каталогов, напрямую обновляя реестр:
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Devstudio.0\Build
System\Components\Platforms\Win32 (x86)\Directories]
"Source Dirs" = "<path1>;<path2>"
Это не так уж плохо и, безусловно, поможет.
Однако решение, на котором я остановился, заключалось в настройке переменной среды SOURCE, содержащей все исходные пути (в виде списка каталогов, разделенных точкой с запятой). Это может сделать очень простой командный файл, позволяющий переключаться между разными деревьями. Затем вы запускаете Visual C++ из командной строки, используя опцию, указывающую ему чтение SOURCE (и INCLUDE, LIB и PATH) из среды:
msdev /useenv
Заглянув в Инструменты-> Параметры, вы увидите, что каталоги из SOURCE действительно загружены. Затем я смог подключиться к запущенному процессу, и отладчик смог найти любой код, в котором я отлаживал.
Жизнь стала намного проще!
Майк, мы создаем (с использованием cl.exe и link.exe) без абсолютных имен путей, что означает, что PDB не имеют полного пути к файлам (по крайней мере, я так предполагаю). Вот почему я ищу альтернативный способ указания каталогов исходных файлов.