4 / 4 / 5
Регистрация: 28.04.2010
Сообщений: 162
|
|||||||||||
1 | |||||||||||
Проблема с try\catch - bad breakpoint03.11.2011, 13:54. Показов 2607. Ответов 8
Метки нет (Все метки)
Всем привет!
Написал простой блок кода с использованием try\catch
Проблема: почему-то, когда доходит до breakpoint'а, он каким-то чудесным образом переносится из блока catch в код, расположенный ниже
Думал, что это может быть из-за того, что код в блоке catch не имеет "смысловой" нагрузки, поэтому игнорируется Но, когда поместил в блок код, относящийся к работе, результат всё равно был тем же - breakpoint не срабатывает Вопрос: кто-нибудь знает решение данной проблемы? Буду очень благодарен за любые советы!
0
|
03.11.2011, 13:54 | |
Ответы с готовыми решениями:
8
Не работают точки breakpoint - The breakpoint will not currently be hit. No symbols have been loaded for this document Battlefield Bad Company 2. Проблема управления. Проблема с возвращающим значением метода в блоке try-catch Проблема с закрытием InputStream: try { dataStream.close(); } catch (Exception e) {...} |
4 / 4 / 5
Регистрация: 28.04.2010
Сообщений: 162
|
|
03.11.2011, 14:14 [ТС] | 3 |
Да, в try ОДНОЗНАЧНО срабатывает ошибка
Проблема в том, что я _ТОЧНО_ не знаю, при каких условиях, поэтому и поставил блок try\catch Но почему в catch не сохраняется breakpoint? Это ОЧЕНЬ странно, у меня это первый раз, но, очевидно, что это не конкретная ситуация, а общая проблема Отсюда и вопрос - кто-то уже сталкивался с подобным, и как решал? Добавлено через 6 минут А ещё появляется ошибка
0
|
03.11.2011, 14:39 | 4 | |||||
У тебя внутри try-блока одни стандартные интерфейсы, которые, насколько я знаю, никаких исключений не бросают. Напиши внутри try-блока код, который заведомо бросает исключение (например, "throw int(0);") и проверь.
Попробовал на коротком примере. Компилятор g++, отладчик gdb
Код
$ g++ t.cc -g $ gdb a.out (gdb) b t.cc:10 Breakpoint 1 at 0x8048627: file t.cc, line 10. (gdb) run Breakpoint 1, main () at t.cc:10 10 G++; (gdb) print G $1 = 0 (gdb) next 8 } catch (...) (gdb) print G $2 = 1 Добавлено через 1 минуту "Ошибка" и "исключение" - это две разные вещи. У тебя ошибка из разряда некорректной работы с указателем. Тут никаких исключений Си++ не будет
1
|
4 / 4 / 5
Регистрация: 28.04.2010
Сообщений: 162
|
|
03.11.2011, 14:48 [ТС] | 5 |
Evg, спасиибо
Попробую как ты сказал... А вот есть ли возможность именно ошибки замечать? По аналогии с exeption'ами?
0
|
03.11.2011, 15:11 | 6 | |||||
Смотря что понимать под ошибками. Если у тя прошло обращение по некорректному адресу, то на уровне операционной системы произойдёт прерывание, которое отладчик может поймать
Код
$ g++ t.cc -g $ ./a.out Segmentation fault $ gdb a.out (gdb) run Program received signal SIGSEGV, Segmentation fault. 0x08048426 in func (p=0x804842e) at t.cc:3 3 *p = 0; (gdb) bt #0 0x08048426 in func (p=0x804842e) at t.cc:3 #1 0x0804844c in main () at t.cc:8
2
|
4 / 4 / 5
Регистрация: 28.04.2010
Сообщений: 162
|
|
03.11.2011, 17:36 [ТС] | 7 |
Evg, Соглашусь со всем, что ты написал, спасибо
Добавлено через 38 секунд Пожалуй, на этом тему можно считать закрытой Всем спасибо за советы
0
|
10 / 10 / 0
Регистрация: 25.12.2012
Сообщений: 15
|
|
06.02.2014, 02:02 | 8 |
В Кьют не видет try-catch. Возможно нужно подключить библиотеки? Подскажите какие. Прошу скинуть примерчик на обработку ситуаций полей ввода
0
|
06.02.2014, 20:31 | 9 |
0
|
06.02.2014, 20:31 | |
06.02.2014, 20:31 | |
Помогаю со студенческими работами здесь
9
При запуске windows выдаёт разные ошибку типо netio.sys, bad pool header, bad system config info HDD BAD& SMART BAD Безработный BreakPoint Chsize, breakpoint Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |