Я использую Предварительный просмотр Visual Studio 2013, хотя я уверен, что видел его в более ранних версиях. При создании нового проекта с помощью мастера я выбираю C++, Win32 Console Application, и есть возможность включить проверки жизненного цикла безопасности в моем проекте. Может ли кто-нибудь объяснить, что этот вариант делает для моего кода/проекта?Что такое проверка жизненного цикла безопасности в Visual Studio?
ответ
Переключатель /sdl
описан here. Он превращает некоторые предупреждения в ошибки, которые не влияют на ваш код. Кроме того, он более агрессивно проверяет /GS
.
Не ожидайте от него слишком многого. Microsoft SDL действительно является обходным решением для программирования стиля C в 1980-х годах. Даже если вы используете 20-й век C++, вам это не нужно. Например. operator+(std::string, std::string)
является безопасным и портативным. Решение Microsoft SDL здесь в отличие от этого не переносимо и не безопасно. Идея, лежащая в основе /GS
, заключается в том, чтобы найти ошибки с обработкой строки C во время выполнения и прервать программу, ограничивая последствия, но не делая ее безопасной.
Жизненный цикл развития безопасности Microsoft - это процесс разработки программного обеспечения, который Microsoft предлагает и предлагает Microsoft для снижения затрат на обслуживание программного обеспечения и повышения надежности программного обеспечения, связанного с ошибками, связанными с обеспечением безопасности программного обеспечения.
Они могут помочь:
http://msdn.microsoft.com/en-us/library/windows/desktop/84aed186-1d75-4366-8e61-8d258746bopq.aspx
Это много материала. Что действительно проверяет опцию на мой код? –
Строки - не единственная причина ошибок памяти./sdl может помочь вам определить, среди прочего, использование униализированных переменных. –
@ JørgenFogh: Вы описываете предупреждение C4700, для которого вам не нужно/sdl. Это предупреждение уровня 1; вам необходимо отключить ** все ** предупреждения до того, как C4700 исчезнет. Если ваши разработчики делают это, у вас есть проблемы, которые SDL не решит. – MSalters
Я помню, где-то читал, что предупреждения становятся более подробными, потому что/sdl включает более подробный статический анализ. Я не могу вспомнить, где я его читал. –