Как подключиться к процессу и отладить код, который не собирается?
Я работаю над проектом и пытаюсь исправить ошибку, найденную в системе. Код, к которому у меня есть доступ, не создается (это огромный проект с большим количеством DLL-файлов, некоторые из которых отсутствуют в моем рабочем пространстве). У меня есть доступ к той части кода, которую я пытаюсь отладить, но не могу ее построить. Итак, я начал компилировать .exe
файл и приложенный к нему в VS. Когда я устанавливаю точку останова в коде, она отключается и говорит No symbols have been loaded for this document.
Поэтому мой вопрос: какую дополнительную информацию / файлы ищет отладчик? Я предполагаю, что он ищет pdb
файл для этой конкретной сборки, которой нет на моей машине. Любая помощь приветствуется.
Редактировать:
Когда я пытаюсь присоединиться к exe-файлу, я получаю это предупреждение:
3 ответа
какую дополнительную информацию / файлы ищет отладчик? Я предполагаю, что он ищет файл pdb для этой конкретной сборки, который не существует на моей машине.
Ваше предположение верно.
Любая помощь приветствуется.
Вот несколько способов решить вашу проблему:
- Получите местоположение сервера символов, на котором установлена ваша PDB, и настройте VS для автоматической загрузки PDB.
- Получить PDB с помощью других средств.
- Выясните, как построить это самостоятельно; построить свой собственный PDB.
- Спросите, кто бы это сделал, чтобы решить проблему для вас. Это, вероятно, их ошибка, так что заставьте их сделать работу.
- Отладьте проблему, прочитав исходники и смоделировав выполнение программы в своей голове. Когда вы сталкиваетесь с кодом, который не делает то, что должен в симуляции, это ваша ошибка.
- Отладьте проблему в отладчике, читая код сборки вместо источников.
Он ищет файл pdb, без него вы не сможете отладить. Я не знаю подробностей вашей ситуации, но, вероятно, лучший вариант - создать ее на вашей системе. По моему опыту, такая ситуация обычно происходит из-за слишком глубокого проникновения узла в исходное дерево. Работая над более крупными проектами, использование более мелкого узла в системе контроля версий значительно упростило мою жизнь. Когда вы работаете над таким проектом, вы должны иметь возможность его построить, иначе вы, вероятно, никуда не денетесь.
Если удаленная отладка происходит из официальной сборки, то в ней не будет pdb-файлов, поэтому нет простого обхода, например, поиска папки для удаления и копирования pdb.
Я не понимаю, что вы будете делать, запустив любой исполняемый файл. Вы сказали, что ваш код не собирается. Поэтому запуск любого исполняемого файла не может вам помочь. Вы не можете скомпилировать код, это то, с чем вы сталкиваетесь, чем делиться ошибками сборки или ошибками компиляции? Для отсутствующих сборок - удалите из проекта ссылку и закомментируйте код в вашем проекте, который может относиться к любой такой сборке. Можете ли вы построить свой код после этого?
Как только вы сможете собрать код, вы можете продолжить отладку или присоединение любого исполняемого файла.
Надеюсь это поможет!