Debug.Assert иногда не работает - PullRequest
2 голосов
/ 03 июня 2011

У меня есть следующая проблема с Debug.Assert ine в функции

public override ReportErrorLevel GenerateResults(bool reformat) {
...
   for (int Col = MinResultsCol; Col < MaxResultsCol + 1; Col++) {
      try {
         ReportColumnTitle ColTitle = ColumnInfo[Col];

         #if DEBUG
         Debug.Assert(ColTitle.BreakOnGenerate, "...");
         #endif

         ...
      } catch ...
   }
}

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

Я получаю случаи, когда это не перехватывается, однако, когда я устанавливаю безусловную точку останова перед циклом, а затем запускаюсь, как только она достигнута, утверждение затем перехватывается (в этом случае 15-й разцикл).

(#if DEBUG существует, так как ReportColumnTitle.BreakOnGenerate также находится в разделе #if DEBUG) - я не спрашиваю мнение о том, правильно ли это:)

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

Есть идеи?

1 Ответ

6 голосов
/ 03 июня 2011

Это поведение соответствует проблеме в отладчике в VS2008 SP1.Для него выпущено исправление .Он вернулся в VS2010, его SP1 исправил это снова.Как исправление, так и SP1, как известно, достаточно стабильны и решают проблемы с отладчиком, я настоятельно рекомендую вам установить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...