Почему работа GDB теряет приоритет? - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть скрипт, который запускает сервер, затем группу клиентов, затем мне нужно вернуть сервер на передний план, чтобы я мог что-то протестировать. По какой-то причине сервер быстро завершает работу, как будто по какому-то сигналу, поэтому я хотел проверить его с помощью gdb.

Проблема в том, что при выполнении команды run предопределенный gdb отсоединяется. Вот простой пример sh (--nh для gdb игнорировать конфигурацию) :

$ cat test.sh
#!/bin/sh -m

gdb --nh -q /bin/test &
sleep 1
fg
$ ./test.sh 
Reading symbols from /bin/test...(no debugging symbols found)...done.
gdb --nh -q /bin/test
(gdb) r
Starting program: /usr/bin/test 
$ ps aux | grep gdb
constan+ 11418  1.5  0.3 104928 28200 pts/1    Tl   16:52   0:00 gdb --nh -q /bin/test
constan+ 11470  0.0  0.0  12100  2452 pts/1    S+   16:52   0:00 grep gdb

Как видите, он отсоединился от оболочки и висит там в списке процессов.

С zsh и bash Я также часто получаю следующие ошибки:

[setting tty state failed in terminal_inferior: Input/output error]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]

… и GDB не появляется в списке процессов. Но иногда (не очень часто) поведение в zsh и bash такое же, как и в sh, то есть ошибок нет, и gdb отсоединяется.

В целом, что происходит с GDB?

...