Fixes from Supriya Kannery <supriyak@in.ibm.com>

* wait_for_something.c, process_event.c: Tracing across exec.
* sysdeps/linux-gnu/trace.c, ltrace.h: New interface was_exec.
* testsuite/ltrace.minor/trace-exec.c,
  testsuite/ltrace.minor/trace-exec.exp,
  testsuite/ltrace.minor/trace-exec1.c: Testcase for same.
diff --git a/wait_for_something.c b/wait_for_something.c
index 94edda7..f699663 100644
--- a/wait_for_something.c
+++ b/wait_for_something.c
@@ -114,6 +114,25 @@
  		event.e_un.signum = stop_signal;
 		return &event;
 	}
+
+	if (was_exec(event.proc, status)) {
+		pid_t saved_pid;
+
+		event.thing = LT_EV_NONE;
+		event.e_un.signum = WSTOPSIG(status);
+		debug(1, "Placing breakpoints for the new program");
+		event.proc->mask_32bit = 0;
+		event.proc->personality = 0;
+		event.proc->arch_ptr = NULL;
+		event.proc->filename = pid2name(event.proc->pid);
+		saved_pid = event.proc->pid;
+		event.proc->pid = 0;
+		breakpoints_init(event.proc);
+		event.proc->pid = saved_pid;
+		continue_process(event.proc->pid);
+		return &event;
+	}
+
 	event.thing = LT_EV_BREAKPOINT;
 	if (!event.proc->instruction_pointer) {
 		event.proc->instruction_pointer =