2013-05-10 4 views
2

Я работаю над проектом и пытаюсь исправить ошибку, обнаруженную в системе. Код, к которому у меня есть доступ, не создается (это огромный проект с большим количеством DLL-файлов, некоторые из которых отсутствуют в моей рабочей области). У меня есть доступ к той части кода, которую я пытаюсь отлаживать, но не могу ее создать. Поэтому я начал скомпилированный файл .exe и прикреплен к нему в VS. Когда я устанавливаю точку останова в коде, он отключен и говорит No symbols have been loaded for this document. Так что мой вопрос в том, какая дополнительная информация/файлы ищет отладчик? Я предполагаю, что он ищет файл pdb для этой конкретной сборки, которая не существует на моей машине. Любая помощь приветствуется.Как подключиться к процессу и отлаживать код, который не создается?

Edit:

Когда я пытаюсь прикрепить к исполняемому файлу, я получаю это предупреждение:

enter image description here

+0

Если у вас нет соответствующего файла pdb, вам будет не повезло. –

+0

Ваше приложение должно быть скомпилировано с информацией отладчика. Короче говоря, в режиме DEBUG (или независимо от того, что вы настроили для). :) – gustavodidomenico

ответ

6

какая дополнительная информация/файлы ищет отладчик? Я предполагаю, что он ищет файл pdb для этой конкретной сборки, которая не существует на моей машине.

Ваше предположение верно.

Любая помощь приветствуется.

Некоторых способами вы можете решить вашу проблему, являются:

  • Получить расположение сервера символа, который имеет свой PDB и настроить VS автоматически загружать PDB-файлы.
  • Получить PDB с помощью других средств.
  • Посмотрите, как построить его самостоятельно; создайте свой собственный PDB.
  • Спросите, кто бы его не построил, чтобы отладить проблему для вас. Вероятно, это их ошибка, поэтому заставьте их работать.
  • Отладить проблему, читая источники и моделируя выполнение программы в вашей голове. Когда вы сталкиваетесь с кодом, который не делает то, что ему нужно в симуляции, это ваша ошибка.
  • Отладить проблему в отладчике, прочитав код сборки вместо источников.
+0

+1 все хорошие советы – evanmcdonnal

+0

Я мог бы получить файлы pdb с главной машины сборки. Куда бы мне пришлось их вставить? В той же папке, что и файл .exe? – PoweredByOrange

+0

@ programmer93: Да. –

3

Он ищет PDB файл, без него вы не будете быть в состоянии отлаживать. Я не знаю подробностей вашей ситуации, но, основываясь на вашей системе, вероятно, лучший подход. По моему опыту, эта ситуация обычно возникает из-за слишком глубокого узла в исходном дереве. Работая над более крупными проектами, использование более мелкого узла в контроле источника значительно упростило мою жизнь. Когда вы работаете над таким проектом, вы должны быть способны его построить, иначе вы, вероятно, ничего не добьетесь.

Если удаленная отладка удалена из официальной сборки, у нее не будет файлов pdb, поэтому нет простой работы, например, найти папку для удаления и скопировать pdb.

0

Я не понимаю, что вы будете делать, выполнив любой исполняемый файл. Вы сказали, что ваш код не создается. Поэтому запуск любого исполняемого файла вам не поможет. Вы не можете компилировать код, это то, с чем вы столкнулись, чем обмениваться ошибками сборки или компилировать ошибки?Для отсутствующих сборок - удалите из ссылки на проект и закомментируйте код в своем проекте, который может ссылаться на любое подобное соглашение. Можете ли вы создать свой код после этого?

Как только вы можете создать код, вы можете продолжить отладку или присоединение любого исполняемого файла.

Надеюсь, это поможет!

+0

Вы все равно можете отлаживать исполняемый файл, если у вас есть соответствующий файл pdb. И я не могу просто прокомментировать все, как я сказал, это ОГРОМНЫЙ проект. – PoweredByOrange

+0

Я имел в виду код, который не компилируется, вы не можете отлаживать его? Исполняемые/dll могут устаревать или ссылаться на устаревшие или разные файлы pdb. –

Смежные вопросы