X-Git-Url: http://git.jankratochvil.net/?p=gdbmicli.git;a=blobdiff_plain;f=libmigdb%2Fsrc%2Fconnect.c;fp=libmigdb%2Fsrc%2Fconnect.c;h=eb54b5ed89ec701ee1270c92d67c381320b7f435;hp=e9f26b7ccaca5b9036d848869d887ed472376493;hb=c0732dc2f8b66c394f075628322593fdec50263f;hpb=110872907848ccf01d1f0e372bb79bd0d2af788b 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;