Расширяемость Visual Studio Debugger - Как выполнить перенаправление пути к исходному файлу VS Debugger? - PullRequest
2 голосов
/ 20 июля 2011

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

Если я сделаю следующее:

1) Отладка библиотеки DLL, чья PDB указывает на файл кода в расположении A

2) Переместить файл кода в другое место, B

3) При появлении запроса в диалоговом окне «Открыть файл» укажите отладчику, чтобы найти код в расположении B

Затем файл открывается, и, похоже, Visual Studio «запоминает» это перенаправление и будет знать, что искать файл в местоположении B даже после его перезапуска.

Моя проблема в том, что объекты IDebugStackFrame2 / EnvDTE.StackFrame дают мне старый неверный путь к файлу кода - и я хочу правильный путь, чтобы я мог прочитать исходный код из него! Visual Studio предоставляет эту таблицу косвенных ссылок каким-либо образом?

Как я могу получить текст исходного файла?

P.S. Я пытался использовать метод VsShellUtilities.OpenDocument со старым, неправильным путем, но он выбрасывает метод «файл не найден».

Ответы [ 2 ]

0 голосов
/ 04 октября 2011

Просто не может быть сделано ..........

0 голосов
/ 22 июля 2011

От # 2, вы тоже перекомпилируете? Сама PDB имеет информацию о пути к источнику, вы можете посмотреть это с помощью шестнадцатеричного редактора. Я не думаю, что вы можете изменить путь к исходному файлу, как только отладчик завладеет PDB и там будет указан любой путь.

...