Как установить условия точки останова в CLion - PullRequest
0 голосов
/ 19 ноября 2018

У меня проблемы с приложением Си. Я пишу в CLion (windows) и у меня есть цикл for из 1 to 1000, но в какой-то момент около i = 600 код внутри цикла возвращает что-то неправильное.

На данный момент меня не интересует, почему существует эта проблема, а как ее найти, поэтому я попытался отладить приложение, но невозможно нажать F7 600 раз.

Так есть ли способ начать отладку, скажем, 590?

1 Ответ

0 голосов
/ 21 ноября 2018

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

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

Затем щелкните правой кнопкой мыши точку останова и добавьте в диалоговое окно условия следующее диалоговое окно:

i == 599

Затем запустите код, и отладчик остановится на точке останова только при i == 599.Это волшебно!

#include <stdio.h>

int main()
{
    char array[600];

    for (int i = 0; i < 1000; i++) {
        // code that does something

        array[i] = 0xff; // set breakpoint here!
        //, then right click and add conditional:  i == 590
    }

    printf("Hello, World!\n");
    return 0;
}
...