Отладка с gdb
От: Аноним  
Дата: 18.09.12 13:47
Оценка:
Начал читать ман по отладке из комманной строки в gdb, параллельно пробую.
Подключился к работающему приложению, посмотрел треды, фреймы и сделал continue

(gdb) continue
Continuing.

а как дальше остановить выполнение приложения? на комманды, вводимые после continue gdb никак не реагирует, приложение работает
Re: Отладка с gdb
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.09.12 16:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Начал читать ман по отладке из комманной строки в gdb, параллельно пробую.

А>Подключился к работающему приложению, посмотрел треды, фреймы и сделал continue

А>(gdb) continue

А>Continuing.

А>а как дальше остановить выполнение приложения? на комманды, вводимые после continue gdb никак не реагирует, приложение работает


Ну можно послать SIGINT через Ctrl+C.
А вообще не надо было так делать без breakpoint'ов и прочих штатных причин остановки.
The God is real, unless declared integer.
Re: Отладка с gdb
От: MasterZiv СССР  
Дата: 18.09.12 18:59
Оценка:
On 09/18/2012 05:47 PM, Аноним 207 wrote:

> Начал читать ман по отладке из комманной строки в gdb, параллельно пробую.

> Подключился к работающему приложению, посмотрел треды, фреймы и сделал continue
>
> (gdb) continue
> Continuing.
>
> а как дальше остановить выполнение приложения?

C-c,

если потом надо выйти, quit или detach

на комманды, вводимые после
> continue gdb никак не реагирует, приложение работает

потому что в этом режиме GDB не воспринимает комманды,
для того, чтобы он воспринимал и перешёл в коммандный режим,
приложение надо остановить, Ctrl-c.
Заметь, Ctrl-c в GDB никогда не вызывает сигнал приложению
и GDB никогда не останавливает приложение, только коммандами
(kill и другие).
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Отладка с gdb
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.09.12 19:31
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>потому что в этом режиме GDB не воспринимает комманды,

MZ>для того, чтобы он воспринимал и перешёл в коммандный режим,
MZ>приложение надо остановить, Ctrl-c.
MZ>Заметь, Ctrl-c в GDB никогда не вызывает сигнал приложению
MZ>и GDB никогда не останавливает приложение, только коммандами
MZ>(kill и другие).

Вы бы документацию прочитали.

The default is set to `nostop', `noprint', `pass' for non-erroneous signals such as `SIGALRM', `SIGWINCH' and `SIGCHLD', and to `stop', `print', `pass' for the erroneous signals.


Чтобы SIGINT не вызывал сигнал приложению, надо как минимум сказать ему `handle SIGINT nopass'.
Вот тогда он станет хоть как-то годиться на останов без передачи приложению. (Не учитываем проблемы с тредами, это отдельная тема.)
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.