Version 0.3.27

* Removed dependency on libdl (it is no longer needed)
* Wrote generic dictionary, used in demangle.c and breakpoints.c
* Added debug.c for better debugging output
diff --git a/execute_program.c b/execute_program.c
index 0306678..6efc03c 100644
--- a/execute_program.c
+++ b/execute_program.c
@@ -13,40 +13,9 @@
 
 #include "ltrace.h"
 #include "options.h"
-#include "output.h"
+#include "debug.h"
 #include "sysdep.h"
 
-static void change_uid(struct process * proc);
-
-void
-execute_program(struct process * sp, char **argv) {
-	pid_t pid;
-
-	if (opt_d) {
-		output_line(0, "Executing `%s'...", sp->filename);
-	}
-
-	pid = fork();
-	if (pid<0) {
-		perror("ltrace: fork");
-		exit(1);
-	} else if (!pid) {	/* child */
-		change_uid(sp);
-		trace_me();
-		execvp(sp->filename, argv);
-		fprintf(stderr, "Can't execute `%s': %s\n", sp->filename, strerror(errno));
-		exit(1);
-	}
-
-	if (opt_d) {
-		output_line(0, "PID=%d", pid);
-	}
-
-	sp->pid = pid;
-
-	return;
-}
-
 static void
 change_uid(struct process * proc) {
 	uid_t run_uid, run_euid;
@@ -97,3 +66,28 @@
 		}
 	}
 }
+
+void
+execute_program(struct process * sp, char **argv) {
+	pid_t pid;
+
+	debug(1, "Executing `%s'...", sp->filename);
+
+	pid = fork();
+	if (pid<0) {
+		perror("ltrace: fork");
+		exit(1);
+	} else if (!pid) {	/* child */
+		change_uid(sp);
+		trace_me();
+		execvp(sp->filename, argv);
+		fprintf(stderr, "Can't execute `%s': %s\n", sp->filename, strerror(errno));
+		exit(1);
+	}
+
+	debug(1, "PID=%d", pid);
+
+	sp->pid = pid;
+
+	return;
+}