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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 581
3

Ответы 3

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

Майк, мы создаем (с использованием cl.exe и link.exe) без абсолютных имен путей, что означает, что PDB не имеют полного пути к файлам (по крайней мере, я так предполагаю). Вот почему я ищу альтернативный способ указания каталогов исходных файлов.

Jason Etheridge 01.10.2008 03:59


Да.
войти в


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

, и вы можете установить расположение каталога 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 действительно загружены. Затем я смог подключиться к запущенному процессу, и отладчик смог найти любой код, в котором я отлаживал.

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

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