diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2007-10-08 12:29:22 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2007-10-08 12:29:22 +0000 |
commit | 04db6e0e820c36fe7ba57997b84c7038610b54fc (patch) | |
tree | cb5ea79b7a1379133854913130bf2307bfabb506 /byterun/debugger.c | |
parent | 9d7b5513e3db593afc19547cec6b6a63b77f9752 (diff) |
meilleur message d'erreur
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8414 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/debugger.c')
-rw-r--r-- | byterun/debugger.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/byterun/debugger.c b/byterun/debugger.c index df399fc89..d6d3a2b5e 100644 --- a/byterun/debugger.c +++ b/byterun/debugger.c @@ -47,6 +47,7 @@ void caml_debugger(enum event_kind event) #ifdef HAS_UNISTD #include <unistd.h> #endif +#include <errno.h> #include <sys/types.h> #include <sys/wait.h> #include <sys/socket.h> @@ -67,12 +68,16 @@ static int dbg_socket = -1; /* The socket connected to the debugger */ static struct channel * dbg_in; /* Input channel on the socket */ static struct channel * dbg_out;/* Output channel on the socket */ +static char *dbg_addr = "(none)"; + static void open_connection(void) { dbg_socket = socket(sock_domain, SOCK_STREAM, 0); if (dbg_socket == -1 || - connect(dbg_socket, &sock_addr.s_gen, sock_addr_len) == -1) - caml_fatal_error("cannot connect to debugger"); + connect(dbg_socket, &sock_addr.s_gen, sock_addr_len) == -1){ + caml_fatal_error_arg2 ("cannot connect to debugger at %s", dbg_addr, + "error: %s\n", strerror (errno)); + } dbg_in = caml_open_descriptor_in(dbg_socket); dbg_out = caml_open_descriptor_out(dbg_socket); if (!caml_debugger_in_use) caml_putword(dbg_out, -1); /* first connection */ @@ -96,6 +101,7 @@ void caml_debugger_init(void) address = getenv("CAML_DEBUG_SOCKET"); if (address == NULL) return; + dbg_addr = address; /* Parse the address */ port = NULL; @@ -108,7 +114,7 @@ void caml_debugger_init(void) sock_addr.s_unix.sun_family = AF_UNIX; strncpy(sock_addr.s_unix.sun_path, address, sizeof(sock_addr.s_unix.sun_path)); - sock_addr_len = + sock_addr_len = ((char *)&(sock_addr.s_unix.sun_path) - (char *)&(sock_addr.s_unix)) + strlen(address); } else { @@ -211,7 +217,7 @@ void caml_debugger(enum event_kind event) caml_flush(dbg_out); command_loop: - + /* Read and execute the commands sent by the debugger */ while(1) { switch(getch(dbg_in)) { |