Fix compilation
diff --git a/sysdeps/linux-gnu/events.c b/sysdeps/linux-gnu/events.c
index 6e5eb60..d0c1e5c 100644
--- a/sysdeps/linux-gnu/events.c
+++ b/sysdeps/linux-gnu/events.c
@@ -22,20 +22,22 @@
 #include "config.h"
 
 #define	_GNU_SOURCE	1
-#include <stdlib.h>
+#include <sys/ptrace.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <assert.h>
 #include <errno.h>
 #include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
-#include <sys/ptrace.h>
-#include <assert.h>
 #include <unistd.h>
 
-#include "breakpoint.h"
-#include "proc.h"
 #include "backend.h"
+#include "breakpoint.h"
+#include "debug.h"
 #include "events.h"
+#include "proc.h"
 
 static Event event;
 
@@ -57,7 +59,7 @@
 	      event->proc->pid, event->type);
 	Event * ne = malloc(sizeof(*ne));
 	if (ne == NULL) {
-		perror("event will be missed: malloc");
+		fprintf(stderr, "event will be missed: %s\n", strerror(errno));
 		return;
 	}
 
diff --git a/sysdeps/linux-gnu/proc.c b/sysdeps/linux-gnu/proc.c
index 1550220..e7556f5 100644
--- a/sysdeps/linux-gnu/proc.c
+++ b/sysdeps/linux-gnu/proc.c
@@ -35,15 +35,18 @@
 #include <link.h>
 #include <signal.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
-#include "config.h"
-#include "breakpoint.h"
-#include "proc.h"
-#include "library.h"
 #include "backend.h"
+#include "breakpoint.h"
+#include "config.h"
+#include "debug.h"
 #include "events.h"
+#include "library.h"
+#include "ltrace-elf.h"
+#include "proc.h"
 
 /* /proc/pid doesn't exist just after the fork, and sometimes `ltrace'
  * couldn't open it to find the executable.  So it may be necessary to
@@ -113,7 +116,7 @@
 	char * line;
 	while ((line = find_line_starting(file, prefix, len)) != NULL) {
 		enum callback_status st = (*cb)(line, prefix, data);
-		free (line);
+		free(line);
 		if (st == CBS_STOP)
 			return;
 	}
diff --git a/sysdeps/linux-gnu/trace.c b/sysdeps/linux-gnu/trace.c
index 5924df1..3fc4df0 100644
--- a/sysdeps/linux-gnu/trace.c
+++ b/sysdeps/linux-gnu/trace.c
@@ -37,13 +37,15 @@
 # include <selinux/selinux.h>
 #endif
 
-#include "ptrace.h"
-#include "breakpoint.h"
-#include "proc.h"
 #include "linux-gnu/trace.h"
 #include "backend.h"
-#include "type.h"
+#include "breakpoint.h"
+#include "debug.h"
 #include "events.h"
+#include "options.h"
+#include "proc.h"
+#include "ptrace.h"
+#include "type.h"
 
 /* If the system headers did not provide the constants, hard-code the normal
    values.  */
@@ -673,8 +675,8 @@
 	struct Process *teb = self->task_enabling_breakpoint;
 	struct breakpoint *sbp = self->breakpoint_being_enabled;
 	fprintf(stderr, "%d couldn't continue when handling %s (%p) at %p\n",
-		teb->pid, sbp->libsym != NULL ? sbp->libsym->name : NULL,
-		sbp->addr, get_instruction_pointer(teb));
+		teb->pid, breakpoint_name(sbp),	sbp->addr,
+		get_instruction_pointer(teb));
 	delete_breakpoint(teb->leader, sbp->addr);
 }
 
diff --git a/sysdeps/linux-gnu/trace.h b/sysdeps/linux-gnu/trace.h
index 0f40709..88ac33d 100644
--- a/sysdeps/linux-gnu/trace.h
+++ b/sysdeps/linux-gnu/trace.h
@@ -21,6 +21,8 @@
 #ifndef _LTRACE_LINUX_TRACE_H_
 #define _LTRACE_LINUX_TRACE_H_
 
+#include "proc.h"
+
 /* This publishes some Linux-specific data structures used for process
  * handling.  */
 
diff --git a/sysdeps/linux-gnu/x86_64/trace.c b/sysdeps/linux-gnu/x86_64/trace.c
index 8e89ae7..bb4d67f 100644
--- a/sysdeps/linux-gnu/x86_64/trace.c
+++ b/sysdeps/linux-gnu/x86_64/trace.c
@@ -29,12 +29,14 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "common.h"
-#include "ptrace.h"
-#include "proc.h"
-#include "value.h"
+#include "backend.h"
+#include "debug.h"
 #include "expr.h"
+#include "fetch.h"
+#include "proc.h"
+#include "ptrace.h"
 #include "type.h"
+#include "value.h"
 
 #if (!defined(PTRACE_PEEKUSER) && defined(PTRACE_PEEKUSR))
 # define PTRACE_PEEKUSER PTRACE_PEEKUSR