[Geany-Devel] Changing terminate signal for stopping executing programs

Dimitar Zhekov dimitar.zhekov at xxxxx
Tue Mar 12 17:47:21 UTC 2013


On Mon, 11 Mar 2013 13:18:10 +1100
Lex Trotman <elextr at gmail.com> wrote:

> Geany currently uses SIGQUIT to terminate a running program (using the
> execute menu item or toolbar button when it shows the stop icon).
> This has always been the case since the stop button was added.
> 
> There is a big comment in the code explaining why SIGQUIT is used, and
> its problems:
> 
> 	/* Unix: SIGQUIT is not the best signal to use because it causes a
> core dump (this should not
> 	 * perforce necessary for just killing a process). But we must use a
> signal which we can
> 	 * ignore because the main process get it too, it is declared to
> ignore in main.c. */
> 
> ...
> 
> My understanding of Unix/Linux signals is that the comment above is
> wrong and always has been wrong, a signal sent to a child process by a
> parent process does not get delivered to the parent.

When you execute a gdb -exec-interrupt command in debugger or Scope, a
SIGINT is sent to the inferior, and to gdb, and to Geany. But if you
start gdb from a terminal, the signal is sent to inferior only.

debugger moves gdb/inferior to a new process group, which sometimes
fails. Scope disables SIGINT in Geany while debugging.

glib spawn is much more complex than a normal fork/exec...

-- 
E-gards: Jimmy


More information about the Devel mailing list