Сведения о вопросе

MAT

21:06, 1st October, 2020

Теги

Как изменить расположение исходных файлов в файле символов (pdb)

Просмотров: 503   Ответов: 4

В основном то, что я хочу сделать это так: pdb-файл содержит расположение исходных файлов (например, C:\dev\proj1\helloworld.cs ). Можно ли изменить этот pdb-файл так, чтобы он содержал другое местоположение (например, \more\differenter\location\proj1\helloworld.cs )?



  Сведения об ответе

lats

09:51, 8th August, 2020

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


  Сведения об ответе

#hash

16:43, 10th August, 2020

Если вы хотите получить более общие сведения о путях, встроенных в pdb-файл, вы можете сначала использовать команду MS-DOS subst для сопоставления определенной папки с буквой диска.

subst N: <MyRealPath>

Затем откройте свой проект относительно диска N: и перестроите его. Ваши файлы PDB будут ссылаться на исходные файлы на N:. Теперь не имеет значения, где вы разместите этот конкретный набор исходных файлов, если вы впоследствии вызовете корневой каталог "N:", как это было при его создании.

Эту практику рекомендует Джон Роббинс в своей превосходной книге " отладка приложений для Microsoft .NET и Microsoft Windows".


  Сведения об ответе

SILA

19:18, 2nd August, 2020

Я хотел найти ответ на этот вопрос, чтобы отладить аварийный дамп, который произошел в исполняемом файле, который я не создавал на своей машине, поэтому путь к исходному коду, на который ссылается PDB, был недопустим, как и путь к PDB, на который ссылается исполняемый файл.

После поиска вокруг и не в состоянии найти что-то, что работает, я обнаружил, что если вы поместите исполняемый файл и PDB рядом с файлом аварийного дампа (т. е. затем откройте и запустите аварийный дамп в VS, VS найдет и использует PDB/EXE локально. Кроме того, он также будет запрашивать местоположение исходного кода при нажатии на запись в стеке вызовов: указывая на какой бы исходный код ни был релевантен, все это прекрасно работает, и это здорово!

В любом случае, надеюсь, это поможет кому-то еще...:)


  Сведения об ответе

+-*/

08:55, 9th August, 2020

Это, конечно, возможно, как уже указывал Фройнд. Но если это только для того, чтобы источники можно было найти и загрузить во время отладки, то лучшим способом было бы установить исходный путь соответствующим образом. После установки в отладчике он будет вытеснять все жестко закодированные пути внутри PDBs.

В windbg (например): .

srcpath+ path_to_source_root
или вот это (в случае удаленной отладки): .
lsrcpath+ path_to_source_root


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться