Зачем мне использовать режим отладки компилятора .NET? - PullRequest
3 голосов
/ 07 декабря 2008

Мне было любопытно, в чем разница между режимами отладки и выпуска компилятора .NET, и я наткнулся на эти вопросы о отладке и выпуске в .NET и причинах, по которым выпуск будет вести себя иначе, чем отладки . До этого момента я действительно не уделял много внимания этим режимам компиляции. Сейчас буду.

У меня вопрос: если я использую среду тестирования (NUnit) и TDD, возникнут ли у меня какие-либо проблемы, если я просто всегда буду компилироваться в режиме выпуска?

Ответы [ 4 ]

5 голосов
/ 07 декабря 2008

Вы используете TDD. Вы пишете свой тест. Тест не пройден. Вы пишете код для прохождения теста. Код не работает. Вы смотрите на код, который вы написали, и не видите очевидной причины, по которой он не работает. Вы хотите еще раз подумать или запустить тест в отладчике (используя TestDriven.Net) и пройти тест? Может быть, я просто недостаточно умен, чтобы всегда выяснять, почему мой код не работает, но обычно я делаю последнее, когда нахожусь в тупике.

2 голосов
/ 07 декабря 2008

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

1 голос
/ 07 декабря 2008

Довольно существенное различие между конфигурациями отладки и выпуска заключается в том, что вызовы методов, отмеченных ConditionalAttribute, компилируются, только если определен соответствующий символ. Таким образом, ваши вызовы методов класса Debug не включаются, если вы компилируете с использованием конфигурации выпуска.

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

Кроме того, редактирование и продолжение - чрезвычайно полезный инструмент, и оно основано на метаинформации, которая опущена в сборках релиза.

0 голосов
/ 07 декабря 2008

Для отладки.

Как сказал tvanfosson, даже если вы обычно не используете отладчик (я знаю, что нет), иногда вам нужно.

...