Почему работа GDB теряет приоритет?

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

Проблема в том, что GDB отстраняется от выполнения после выполнения run команда. Вот пример в простом 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?

0 ответов

Другие вопросы по тегам