From: Jan Kratochvil Date: Sat, 11 Aug 2012 07:40:54 +0000 (+0200) Subject: Fix stale gdbs on gdbmicli abort. X-Git-Url: https://git.jankratochvil.net/?p=gdbmicli.git;a=commitdiff_plain;h=c0732dc2f8b66c394f075628322593fdec50263f Fix stale gdbs on gdbmicli abort. --- diff --git a/libmigdb/src/connect.c b/libmigdb/src/connect.c index e9f26b7..eb54b5e 100644 --- a/libmigdb/src/connect.c +++ b/libmigdb/src/connect.c @@ -408,19 +408,25 @@ mi_h *mi_connect_local() {/* We are the child. */ char *argv[5]; /* Connect stdin/out to the pipes. */ + close(h->to_gdb[1]); + close(h->from_gdb[0]); dup2(h->to_gdb[0],STDIN_FILENO); + close(h->to_gdb[0]); dup2(h->from_gdb[1],STDOUT_FILENO); + close(h->from_gdb[1]); /* Pass the control to gdb. */ argv[0]=(char *)gdb; /* Is that OK? */ argv[1]="--interpreter=mi"; argv[2]="--quiet"; argv[3]=disable_psym_search_workaround ? 0 : "--readnow"; argv[4]=0; - execvp(argv[0],mi_gdb_argv ? mi_gdb_argv : argv); + execvp(mi_gdb_argv ? mi_gdb_argv[0] : argv[0], mi_gdb_argv ? mi_gdb_argv : argv); /* We get here only if exec failed. */ _exit(127); } /* We are the parent. */ + close(h->to_gdb[0]); + close(h->from_gdb[1]); if (h->pid==-1) {/* Fork failed. */ mi_error=MI_FORK;