Me encuentro con el mismo problema. Me parece que en inferior.h (código fuente de GDB gdb/inferior.h) hay una macro STARTUP_WITH_SHELL
, también hay un pedazo de comentario como
/* If STARTUP_WITH_SHELL is set, GDB's "run"
will attempts to start up the debugee under a shell.
This is in order for argument-expansion to occur. E.g.,
(gdb) run *
The "*" gets expanded by the shell into a list of files.
While this is a nice feature, it turns out to interact badly
with some of the catch-fork/catch-exec features we have added.
In particular, if the shell does any fork/exec's before
the exec of the target program, that can confuse GDB.
To disable this feature, set STARTUP_WITH_SHELL to 0.
To enable this feature, set STARTUP_WITH_SHELL to 1.
The catch-exec traps expected during start-up will
be 1 if target is not started up with a shell, 2 if it is.
- RT
If you disable this, you need to decrement
START_INFERIOR_TRAPS_EXPECTED in tm.h. */
#define STARTUP_WITH_SHELL 1
#if !defined(START_INFERIOR_TRAPS_EXPECTED)
#define START_INFERIOR_TRAPS_EXPECTED 2
#endif
Entonces me puse STARTUP_WITH_SHELL
como 0 y decrementa START_INFERIOR_TRAPS_EXPECTED
y recompilado mi BGF . Después de eso, gdb ya no comenzó desde el caparazón.
Acabo de encontrar este error exacto en mi configuración. –