Почему мои точки останова eclipse cdt удаляются сразу после добавления?

Некоторое время это работает нормально, и есть много ошибок точки останова eclipse, но этот не похож на другие.

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

Вот трассировка GDB ...

355,448 50-break-insert -f xxx
355,448 50^done,bkpt={number="9",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000435f1e"\
,func="xxx(void const*, unsigned long)",file="xxx.cpp",fullname="xxx.cpp",line="223",thread-groups=["i1"]\
,times="0",original-location="xxx.cpp:223"}
355,448 (gdb) 

... а потом это происходит ....

355,601 51-break-delete 9
355,601 51^done
355,601 (gdb) 

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

Я бы предпочел не перестраивать свое рабочее место.

РЕДАКТИРОВАТЬ: моя версия gdb - GNU gdb (Ubuntu 7.10-1ubuntu2) 7.10

версия затмения ...

Eclipse IDE для разработчиков C / C ++ Версия: Luna Service Release 2 (4.4.2) Идентификатор сборки: 20150219-0600

cdt ...

Инструменты разработки Eclipse C / C ++ Версия: 8.6.0.201502131403 Идентификатор сборки: @ build @

Я скопировал эту настройку eclipse с машины с этой версией gdb, и она работала нормально. GNU gdb (Ubuntu 7.7.1-0ubuntu5 ~ 14.04.2) 7.7.1


person stu    schedule 15.01.2016    source источник
comment
Сообщите нам версию CDT / Eclipse, GDB и платформу, которую вы используете, чтобы мы могли попытаться отследить ее.   -  person Jonah Graham    schedule 16.01.2016
comment
Я только что заметил. точки останова, существующие до запуска программы, работают нормально (остаются активными). Только точки останова, которые я добавляю после запуска программы в режиме отладки, удаляются сразу после добавления.   -  person stu    schedule 19.01.2016


Ответы (1)


(Ранее был ответ с частью этой информации, теперь удален?)

В CDT 8.6 есть известная ошибка, которая теперь исправлена. Суть в том, что было условие гонки, которое теперь имеет было разрешено в CDT 8.7 (Eclipse Mars).

Для текущей проблемы OP поднял ошибку 19503 против GDB. Частично основываясь на информации там, кажется, что потенциальное отключение отладочных разветвленных процессов может облегчить ситуацию в Eclipse. В конфигурации запуска снимите флажок «Автоматически отлаживать разветвленные процессы», последний из параметров, отмеченных ниже:

введите здесь описание изображения

person Jonah Graham    schedule 19.01.2016
comment
что ж, это немного помогло. Один проект работает нормально, но я получаю ошибки при создании точек останова в другом проекте ... Ошибка установки точки останова: данный контекст: (gdb [3] .proc [23931] .threadGroup [i2], gdb [3] .proc [23931] ] .OSthread [0]). Thread [0] уже приостановлен. , Не удалось выполнить команду MI: -exec-interrupt Сообщение об ошибке от бэкэнда отладчика: Неверный идентификатор потока: 11, Не удалось выполнить команду MI: -exec-interrupt Сообщение об ошибке из бэкэнда отладчика: Неверный ID потока: 9 - person stu; 19.01.2016
comment
Я очень хочу сейчас плакать. Итак, я создал новую рабочую область и начал переносить проекты, импортировал конфигурацию запуска, запустил ее, но все еще получаю ошибки точки останова. - person stu; 19.01.2016
comment
Я сочувствую, но, к сожалению, не могу решить вашу проблему. Я знаю твою боль, потому что я тоже был там. Все, что я могу порекомендовать, - это задать новый вопрос о SO с новым сообщением об ошибке и / или зайти на форум cdt и посмотреть, нет ли там кого-нибудь из других cdt и может ли он помочь. eclipse.org/forums/eclipse.tools.cdt - person Jonah Graham; 20.01.2016
comment
Поскольку вам нужно кое-что знать о cdt, возможно, вы мне поможете: у меня есть проекты, которые работают, а другой - нет. Неисправность точек останова последовала за проектом до моей новой установки mars. Таким образом, настройки, вызывающие эту проблему, находятся где-то в настройках проекта. Знаете ли вы, может быть, где в файле .project или .cproject я могу найти, в чем может быть проблема, чтобы удалить ее? - person stu; 20.01.2016
comment
Думаю, я немного сузил круг вопросов. Я нашел, где он умирает, думал, что это было при запуске, но это не так, когда я вызываю popen, я получаю следующее: /build/gdb-HnfxP_/gdb-7.10/gdb/linux-nat.c:1773: internal -error: linux_nat_resume: утверждение `lp! = NULL 'не выполнено. Обнаружена внутренняя проблема GDB, - person stu; 20.01.2016
comment
Я не понимаю, почему это не дает сбой в командной строке. - person Jonah Graham; 20.01.2016
comment
Что касается содержимого cproject и файла проекта, кажется маловероятным, что что-то там напрямую вызывает проблему с точкой останова, поскольку они связаны исключительно с построением программы. - person Jonah Graham; 20.01.2016
comment
Если проблема в popen, можете ли вы сделать сокращенный тестовый пример, который только что открылся? - person Jonah Graham; 21.01.2016
comment
И последний пункт на данный момент. GDB 7.10 очень новый, намного новее, чем версия CDT, которую вы используете. Это в основном актуально для пользовательской базы, использующей GDB 7.10. Вы находитесь на переднем крае, и вы можете быть первым, кто обнаружит такие проблемы :-( Если вы можете работать со мной, чтобы найти сокращенный тестовый пример, я могу попытаться исправить его или, по крайней мере, создать надлежащий отчет об ошибке. - person Jonah Graham; 21.01.2016
comment
для справки, я открыл эту ошибку ... sourceware.org/bugzilla/show_bug.cgi? id = 19503 Я постараюсь провести автономный тест на сбой, когда у меня будет время - person stu; 21.01.2016
comment
@stu благодарит людей из GDB за это. С дополнительной информацией вы можете найти полезным отключение отладки разветвленных процессов? Я изменил свой ответ, включив в него эту информацию. - person Jonah Graham; 22.01.2016