Ошибка отладки Visual Studio?

Я пытаюсь отладить модульный тест. Когда я вхожу в код класса, я хочу проверить, что VS2008 показывает дизассемблирование, а не исходный код. Я проверил в окне модулей, и статус рассматриваемого модуля гласит: «символы загружены», так что все выглядит нормально

Проект на С#, я использую Visual Studio 2008 SP1, у кого есть идеи, это сводит меня с ума!


person withakay    schedule 05.08.2009    source источник


Ответы (3)


Символы и исходный код — это не одно и то же. Вам нужно либо иметь исходный код для вашего модуля в том же месте на диске, что и на машине сборки, либо настроить исходный сервер: http://msdn.microsoft.com/en-us/magazine/cc163563.aspx

person Grzenio    schedule 05.08.2009
comment
А если показать разборку? Будет ли исходный сервер это делать? - person Robert Harvey; 05.08.2009
comment
Извините, я должен был быть более ясным... У меня есть проект библиотеки классов и тестовый проект, который ссылается на библиотеку классов в качестве ссылки на проект, оба из которых находятся в одном и том же решении VS2008, поэтому у меня есть исходный код, а также отладка символы (файлы pdb) - person withakay; 05.08.2009
comment
@withakay, тогда это немного странно. Я предполагаю, что ссылка может пойти не так, не могли бы вы попытаться удалить ее и создать заново? - person Grzenio; 06.08.2009
comment
@Robert с правильными перенаправлениями в ваших PDB, зарегистрированных в ваших символах исходного сервера, он фактически вытащит версию исходного кода из системы управления версиями, которая использовалась для сборки этой сборки ... а не просто использовать все, что находится в файловая система. Теперь это хорошо! - person Anderson Imes; 21.08.2009

Если щелкнуть правой кнопкой мыши в исходном окне, появится пункт контекстного меню «Перейти к дизассемблированию». Это покажет вам, что вы ищете. Хотя, как правило, большинство людей склонны спрашивать, как перейти к исходному коду из дизассемблированного кода, а не как перейти к дизассемблированию из исходного кода! :)

@Grzenio прав в том, что если у вас есть исходный код и символы, но вы все еще видите разборку, значит, что-то не так.

Попробуйте проверить версии dll в глобальном кэше сборок (GAC). Вы также можете найти другие подсказки, проверив свойства любых пользовательских библиотек DLL, на которые есть ссылки. В частности, свойства «Конкретная версия» и «Копировать локально». Если какое-либо из этих значений истинно, это может указывать на то, что проект ссылается на копию библиотеки зависимостей, созданную GAC.

person Zach Bonham    schedule 10.08.2009
comment
как правило, большинство людей склонны спрашивать, как перейти к исходному коду из дизассемблированного кода, а не как перейти к дизассемблированному из исходного кода! :) Хм, да, это то, что я хочу :-/ - person withakay; 19.08.2009
comment
Извините, тогда мой ответ стал полностью дислектичным! :) - person Zach Bonham; 19.08.2009

Старый пост, но недавно возникла эта проблема... Удалите ссылку на проект, для которого вы хотите выполнить пошаговое выполнение, из проекта, вызывающего ссылку. Очистите решение, перестройте все (что мне нравится делать по одному проекту за раз, когда у меня возникает эта проблема). Добавьте ссылку еще раз, убедившись, что вы добавляете ссылку как ссылку на проект, а не напрямую ссылаетесь на .dll.

Вы также можете попробовать перейти к настройкам отладки и снять флажок «Включить отладку на уровне адреса» в разделе «Отладка | Общий.

person ScottLenart    schedule 02.01.2013