Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с try\catch - bad breakpoint

5.7K
03 ноября 2011 года
Lindemann66
193 / / 21.07.2011
Всем привет!

Написал простой блок кода с использованием try\catch
Код:
try {
    // Skip initial blankspace
    while (isspace(*ptr)) ++ptr;

    // Skip tagname
    if (!isalpha(*ptr)) return;

    while (!isspace(*ptr)) ++ptr;

    // Skip blankspace after tagname
    while (isspace(*ptr)) ++ptr;
} catch (...) {
    //код просто для того, чтобы поймать breakpoint
    int temp = 7; // вот тут стоит breakpoint
    temp = 8;
    return;
}


Задача: В отладке программа должна остановиться в breakpoint'e, который в catch

Проблема: почему-то, когда доходит до breakpoint'а, он каким-то чудесным образом переносится из блока catch в код, расположенный ниже

 
Код:
} catch (...) {
    int temp = 7; // тут стоял breakpoint
    temp = 8;
    return;
}
while (*ptr && *ptr != '>') { //breakpoint оказывается здесь
    ....
}


Вот, собственно, и проблема

Думал, что это может быть из-за того, что код в блоке catch не имеет "смысловой" нагрузки, поэтому игнорируется
Но, когда поместил в блок код, относящийся к работе, результат всё равно был тем же - breakpoint не срабатывает

Вопрос: кто-нибудь знает решение данной проблемы?
Буду очень благодарен за любые советы!
394
03 ноября 2011 года
MegaMozg
317 / / 18.03.2006
какую среду разработки и отладчик используете?
5.7K
03 ноября 2011 года
Lindemann66
193 / / 21.07.2011
Использую Qt + Qt Creator + MinGW
Но проблему кажись уже понял...
breakpoint сбрасывается вниз потому, что...
в catch он может зайти только в том случае, если в try был exception, а, поскольку в try то у меня, как оказалось, никакой и не exception, а обычная ошибка, компилятор, походу, посчитал, что breakpoint в catch никогда не зайдёт, и сбрасывает его...
Это версия человека, который мне подсказал, и моя)
Как-то так
14
03 ноября 2011 года
Phodopus
3.3K / / 19.06.2008
Если breakpoint поставленный в catch срабатывает, значит catch выполняется
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог