Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2016, 11:15   #1
Троллев
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 29
По умолчанию Кодеблок не стает на остановах!

Кто нибудь шарит здесь в кодеблок?

Код, в частности интересующая функция пробегается раза три, и вдруг стает не на точке останова, а в другом месте..


так как не знаю что думать, прошу как конкретных советов так и общего подробного рассказа о точках останова.


Так. Скрины. Не думаю что это важно, но может так будет проще.







Последний раз редактировалось Троллев; 23.06.2016 в 11:41.
Троллев вне форума Ответить с цитированием
Старый 23.06.2016, 17:00   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

с коде-блоком не работал.
но обычно бряки сходят с ума по трем причинам:
1.
отлаживается релизная сборка в режиме с оптимизациями.
в этом случае исходный код далеко не всегда соответствует
"реальному", который наоптимизировал компилятор.

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

2.
отладочная информация,
которая зашивается либо в бинарники,
либо в отдельных файликах хранится - в принципе не верна.

такое может быть из-за всяких глюков/сбоев в работе ИДЕ.

лекарство:
обычно помогает полная очистка/пересборка проекта.

3.
редкий случай, тем не менее такое тоже случалось.
файл открывался в ИДЕ в неправильной кодировке.

лекарство:
убедиться, что кодировка соответствует ожидаемой.
при необходимости переконвертировать файл.
_Bers вне форума Ответить с цитированием
Старый 24.06.2016, 16:18   #3
Троллев
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 29
По умолчанию

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


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

2 и 3. Может я что-то не понимаю, но ведь встает же, только там, где ему заблагорассудится, не на точках останова... И показывает правильные, вроде, значения всех переменных.

Последний раз редактировалось Троллев; 24.06.2016 в 16:20.
Троллев вне форума Ответить с цитированием
Старый 24.06.2016, 17:14   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Ну тогда еще одна причина - код в данном месте не выполняется.
waleri вне форума Ответить с цитированием
Старый 24.06.2016, 17:46   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

У вас бряк стоит на переменной... что вы от него хотите? Некоторые умные дебагеры позволяют ставить условные бряки (на запись/доступ к переменной), но у вас то обычный.
p51x вне форума Ответить с цитированием
Старый 24.06.2016, 19:51   #6
Троллев
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 29
По умолчанию

Я может не понимаю. Я ведь ожидал, что программу можно прервать в любом месте. И посмотреть значение переменных. А разве ж не так? И а как же без этого дебажить?


И я ставил точки остановки два десятка разов. Не одна не сработала. Ну разве нормально?

А есть классный туториал по дебагу? На славянских языках?


П.с. Програма падає в деякій функції. Причому при спробі запису значення до тривимірного масиву. Бажаю ретельно прослідкувати увесь кругообіг змінення значень змінних. (Вибачте за тавтологію) І як же мені це найкращим чином здійснити?

П.с. Программа падает в некоторой функции. Причем при попытке записи значения в трехмерный массив. Желаю тщательно проследить весь круговорот изменения значений переменных. (Извините за тавтологию) и как же мне это наилучшим образом осуществить?

Последний раз редактировалось Троллев; 24.06.2016 в 20:12.
Троллев вне форума Ответить с цитированием
Старый 24.06.2016, 20:29   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Я ведь ожидал, что программу можно прервать в любом месте. И посмотреть значение переменных. А разве ж не так?
Так. Но вы поставили бряк на переменную, на ячейку памяти,... как вам еще объяснить?.. Там нет кода, который выполняется; туда не заходит поток управления и т.д.

Цитата:
И я ставил точки остановки два десятка разов. Не одна не сработала. Ну разве нормально?
Ненормально, примеры "багов" вам приводили. Кстати, у вас дебагер настроен? гдб?
p51x вне форума Ответить с цитированием
Старый 24.06.2016, 20:33   #8
Троллев
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 29
По умолчанию

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


Стоп .... Програма виконується послідовно. Я встав в певний момент. Де б не було. Я гадав що я маю побачіти значення змінніх, усіх які не є тобто є у даний проміжок часу. Тобто всі змінні присутні в даної функциї. Так само я їх бачу коли програма зупинюється там де їй заманеться.
Я ось бачу і значення усіх присудніх у функциї змінних і спочатку змінні яки функция прийняла до чсебе на початку.
Я бажав таке бачіти де б я не зупинивсь у програмі.
Я може не науково висловлююсь. Я не вчився, дещо в комп'ютері мені показали друзі, щос я сам прочитав уривками.
Весь список значень змінних при будь якій кожній зупинці. А інакше, на які місця і яким чином мені ставитибряк? Можливо я і правда толком не розумію, що і як робити.

Стоп .... Программа выполняется последовательно. Я встал в определенный момент. Где бы не было. Я думал что я увиджу значения переменных, всех которые есть то есть в данный промежуток времени. То есть все переменные которые присутствуют в данной функции. Так же я их вижу когда программа останавливаеться там где ей заблагорассудится.
Я вот вижу и значение всех присутствующих в функции переменных и сначала переменные которые функция приняла к себе в начале.
Я хотел такое видеть где бы я не остановился в программе.
Я может не научно выражаюсь. Я не учился, несколько в компьютере мне показали друзья, что то я сам прочитал урывками.
Весь список значений переменных при любой и каждой остановке. А иначе, на какие места и каким образом мне ставить бряк? Возможно я и правда толком не понимаю, что и как делать.

Последний раз редактировалось Троллев; 24.06.2016 в 21:09.
Троллев вне форума Ответить с цитированием
Старый 24.06.2016, 20:38   #9
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Прикольно. Помнится, у меня в Code::Blocks вообще нигде не останавливалось на брекпоинтах.
А у Вас, смотрю, хоть где-то тормозит.
Интересно, это разновидность одного бага,
или же просто прогресс в IDE
Croessmah вне форума Ответить с цитированием
Старый 24.06.2016, 22:27   #10
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
У вас бряк стоит на переменной... что вы от него хотите? Некоторые умные дебагеры позволяют ставить условные бряки (на запись/доступ к переменной), но у вас то обычный.
что бы брякался на точке останова, очевидно жеж.
как это делают все виденные мною отладчики:
которые идут в поставке с вижуал студией,qtcreator, eclipse

что дает основание полагать
проблему остановки на переменной - надуманной.
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
быстродействие запуска теряется и размер проекта немножко больше стает beegl Общие вопросы Delphi 2 05.01.2013 21:51
У меня компютер работает, потом стает черный экран, питание есть и ничего не грузится ChukCha Компьютерное железо 6 09.12.2008 03:12