На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> как сделать ошибку run-time check , проверка проверки компилятора.
    Здравствуйте!

    В компиляторе c++ 2017, как и в предыдущих, есть rtc. Она включается флагом /RTCcsu.
    В исполняемый код, автоматически втыкаются дополнительные проверки некоторых ошибок.

    Во-первых, хочется проверить, как работают все эти проверки. То есть нужен код, который справоцирует эту ошибку.

    Например, написал функцию , который использует неинициализированную переменную.
    ExpandedWrap disabled
      #pragma warning( push )
      #pragma warning( disable : 4701 )
      #pragma warning( disable : 6001 )
      void condition_use_variable( const bool expression )
        {
        int x;
       
        if( expression )
          {
          x = 123;
          }
       
        int y = x;
        _tprintf( _T( "variable  value %d\r\n" ), y );
        }
      #pragma warning( pop )


    Прагмы нужны, чтоб скомпилировать код. А то этот "дурной" компилятор, даже ногу не даёт отстрелить.

    Вообще, данный вопрос интересен, не только ради самой проверки.

    Во-вторых, что-то ms опять накрутили в стандартной библиотеке и теперь она просит отключить /RTCc. Я бы хотел удостоверится, что оно действительно отключается только для библиотеки и не затрагивает мой код.

    В-третьих, можно установить свой обработчик ошибок и сопоставить типы с номером ошибки. Из документации я понял не всё и хотел бы проверить как оно работает.

    Но пока такой вопрос или даже просьба. Подскажите, как можно ещё заставить сработать run-time checker?

    Перебором вытащил вшитое описание ошибок.
    Цитата

    0. Stack pointer corruption
    1. Cast to smaller type causing loss of data
    2. Stack memory corruption
    3. Local variable used before initialization
    4. Stack around _alloca corrupted


    Но подозреваю, что это не всё.
    Сообщение отредактировано: Eric-S -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0221 ]   [ 16 queries used ]   [ Generated: 28.03.24, 16:24 GMT ]