gdb se congela en malloc

Supongamos que tengo un programa en C como este:

#include <stdlib.h>
#include <stdbool.h>

int main()
{
    while (true) {
        void *p = malloc(1000);
        free(p);
    }
    return 0;
}

y lo adjunto congdb Me gusta estogdb a.out PID. gdb se adhiere con éxito a él, pero trato de hacer algo comocall printf("bla bla bla") gdb se congela y si presionoCtrl^C Entiendo esto:

(gdb) call printf("bla bla bla")
^C
Program received signal SIGINT, Interrupt.
__lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95
95  ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on".
Evaluation of the expression containing the function
(malloc) will be abandoned.
When the function is done executing, GDB will silently stop.

Supongo que esto sucede porque mia.out estaba creando un objeto y adquirió un candado dentromalloc.c y en este momento me conecté congdb e intenté crear una cadena "bla bla bla" usandomalloc.

Mi pregunta es cómo puedo detectar que estoy dentromalloc.c y dejar que mi programa termine esta ejecución? Necesito hacerlo no dentro de la línea de comando sino usando algún tipo de script gdb (solo puedo ejecutar comandos dentrogdb con-ex opción).

Respuestas a la pregunta(2)

Su respuesta a la pregunta