summaryrefslogtreecommitdiffstats
path: root/byterun/debugger.c
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2007-10-08 12:29:22 +0000
committerDamien Doligez <damien.doligez-inria.fr>2007-10-08 12:29:22 +0000
commit04db6e0e820c36fe7ba57997b84c7038610b54fc (patch)
treecb5ea79b7a1379133854913130bf2307bfabb506 /byterun/debugger.c
parent9d7b5513e3db593afc19547cec6b6a63b77f9752 (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.c14
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)) {