Вы не можете, потому что для времени отладки нет средства для установки (и на самом деле лицензия на программное обеспечение запрещает ее распространять, поэтому вы нарушаете лицензионное соглашение, даже если вы получили что-то вместе). Однако «сборка отладки» обычно включает в себя 4 отдельных варианта, а остальные 3 не влияют на распространение приложения.
Создание .pdb файла (кл/Zi и связь/DEBUG), что позволяет символьную отладку. Вероятно, вы хотите добавить/OPT: перейдите к параметрам компоновщика; компоновщик оставляет неиспользуемые функции, когда не создает файл .pdb, но с режимом/DEBUG он сохраняет их все (так как символы отладки ссылаются на них), если вы не добавите это явно.
Обычно я делаю это со всеми моими сборками, даже с производственными. До тех пор, пока вы снова включите оптимизацию компоновщика с помощью/OPT: ref это действительно ничего не стоит, и наличие символов может быть удобно, если вы в конечном итоге хотите прочитать свалку сбоев.
Использование отладочной версии библиотеки времени выполнения C (возможно, MSVCR * D.dll, но это зависит от того, какую рабочую среду вы используете). Это сводится к/MT или/MTd (или что-то еще, если не используется время выполнения dll).
Это то, что вы больше не можете перепрофилировать. Это также оказывает огромное влияние на выполнение некоторых функций libraty, в частности на распределение памяти. Версии среды выполнения отладки стараются «отравить» память, которую они касаются значениями, чтобы очистить неинициализированные ошибки данных, причем релиз обычно оставляет старые данные круглыми, чтобы сохранить время, касающееся его. Я полагаю, что с реализациями MSVCP * STL отладочные версии также опускают все пулы распределения, которые обычно выполняются, так что средство проверки утечки может отображать точно тот блок, который вы бы подумали, а не какой-то более большой кусок памяти, который он выделял, но это означает, что он делает больше вызовов для malloc поверх них намного медленнее. Если у вас есть ошибки с указателем или итератором, это может повлиять на то, какое неправильное поведение вы получаете.
Отключение оптимизации компилятора (/ Od).
Это много делает (this question имеет хорошее обсуждение темы), но в основном это вредит работе. Много. К сожалению, это необходимо, если вы хотите, чтобы одношаговый режим работал плавно.
установка препроцессора #define DEBUG или NDEBUG.
Это влияет на множество библиотек различными способами, но наиболее примечательно, что он компилирует или исключает assert() и друзей.
Таким образом, вы можете подумать о создании сборки с некоторой меньшей комбинацией этих вариантов.Я много использую сборки, которые используют символы (/ Zi и link/DEBUG), и утверждает (/ DDEBUG), но все еще оптимизирован (/ O1 или/O2 или любые флаги, которые вы используете), но с указателями фреймов стека очистить обратные трассы (/ Oy-) и использовать обычную библиотеку времени выполнения (/ MT). Это выполняется близко к моей сборке релизов и является полуотверждаемым (обратные трассировки прекрасны, одноступенчатая игра немного путается на исходном уровне, а уровень сборки отлично работает). Вы можете иметь как можно больше конфигураций; просто клонируйте свой релиз и включите все части отладки, которые вам кажутся полезными.
Единственное, что должно повлиять пытается перераспределить приложение является 2.
Если вы пытаетесь отлаживать на другой машине, вы также можете быть заинтересованы в msvsmon.
Спасибо. Даже информация о блоге Microsoft является неполной и неточной для VS 2008. – 2013-04-11 12:37:30