Как предотвратить взлом Eclipse CDT / GDB в не найденном системном исходном файле? - PullRequest
0 голосов
/ 26 апреля 2020

Eclipse CDT постоянно прерывает выбор системного вызова. И это делает отладку очень трудной - другой процесс зависит от времени ожидания. В начале Eclipse показывал диалоговое окно «Не удается найти исходный файл»:

Не удается найти исходный файл в «/ build / glib c -OTsEL5 / glib c - 2.27 / misc /../ sysdeps / unix / sysv / linux /select.c "Найдите файл или отредактируйте исходный путь поиска, указав его местоположение.

В настройках я переключился опция «Показывать источник не найден редактор» для «Никогда» - он прекратил открывать редактор, но продолжает ломаться. Как перестать ломаться в таких местах (в файлах, которые не принадлежат проекту)?

1 Ответ

0 голосов
/ 27 апреля 2020

Это происходит из-за того, что сигнал получен программой и возможно пропустить перерыв. Он останавливается не из-за отсутствия исходного файла, в моем случае - отсутствующий файл совпадает только и только из-за отсутствия файла отладчик не остановится. В консоли отладчика я заметил следующее:

Program received signal SIG34, Real-time event 34.
0x00007ffff78f2ff7 in __GI___select (nfds=7,  at ../sysdeps/unix/sysv/linux/select.c:41      in ../sysdeps/unix/sysv/linux/select.c

Этот перерыв из-за сигнала. Документация говорит, что можно пропустить прерывание по сигналам, используя команду handle. Я использовал следующую команду GDB:

(gdb) handle SIG34 nonstop

Теперь программа не прерывается (в консоли есть уведомление о каждом сигнале).

...