2010-10-07 2 views
4

Я работаю над несколькими проектами (A и B) в большом VS2010 решении (все в C#). Существует много случаев, когда методы из проекта A обращаются к одному или нескольким проектам в решении, для которых я не несу ответственности, что в свою очередь вызывает проект B. Когда вы переходите с отладчиком из проекта A, я вынужден чтобы пройти через множество методов в этих других проектах, в которых у меня нет интереса, прежде чем я, наконец, дойду до вызова проекта B. Далее, когда выходите из проекта B, я должен пройти весь путь обратно через стек вызовов неинтересных методов, прежде чем я вернусь к проекту A.Исключить некоторые проекты от перехода во время отладки в VS2010?

В настоящее время я работаю над этим, устанавливая точки останова в точках входа и выхода в проектах A и B, но я считаю, что много времени тратится на установку этих точек останова в правильных местах, и я чувствую, что моя жизнь будет намного проще, если я могу просто отключить шаг за шагом для определенных проектов.

Мне известно о DebuggerStepThroughAttribute, но его использование не работает в моей ситуации, так как (i) мне пришлось бы добавлять его во многих местах и ​​(ii) ребята в моем офисе, которые заинтересованы в том, чтобы пройти этот код не будет счастлив.

Любые идеи?

ответ

11

Да, это возможно, включив Just My Code и предотвращая загрузку символов для DLL, которые вам не нужны.

Чтобы включить Только мой код:

  • Debug »Функции и настройки ...» Общие »отметьте "Включить Just My Code (Managed только)".

Чтобы предотвратить символы от нагрузки для DLL:

  • отладки »Параметры и настройки ...» Знаки »нажмите„Все модули, если не исключены“
  • Нажмите„Указать исключенные модули“
  • Добавьте имена модулей, которые вы хотите исключить. Их символы не будут загружаться при отладке вашего приложения.

Теперь, когда вы выполняете шаг F11 из проекта A в проект B, проходящий через проект C, до тех пор, пока вы не загрузите символы для загрузки C, шаг будет включен непосредственно в B.

для того, чтобы символы C не загружены:

  • Начало отладки
  • Добраться до точки, где C загружается
  • Откройте окно Модули (Ctrl + Alt + U), выделите запись для C
  • В столбце «Состояние символа» следует указать «Загрузка отключена с помощью параметра« Включить/Исключить ».
+0

Да! Это прекрасно работает, спасибо. –

+0

Это помогло нам решить проблему, когда ни один из наших точек останова не попал, поэтому мы наконец увидели, что «Загрузка отключена с помощью параметра« Включить/Исключить ») и сняла флажок для нашей dll. Теперь наши контрольные точки попали в ОК! Странная вещь ... мы не знаем, как она попала туда в первый раз! –

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