diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/inf-ttrace.c | 13 |
2 files changed, 15 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d045b45..355568a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2005-07-21 Mark Kettenis <kettenis@gnu.org> + + * inf-ttrace.c (inf_ttrace_wait): Properly report TTEVT_EXEC + events as TARGET_WAITKIND_EXECD. + (inf_ttrace_detach): Reorder local variables. + 2005-07-20 Mark Kettenis <kettenis@gnu.org> * inf-ttrace.c (inf_ttrace_vfork_ppid): New variable. diff --git a/gdb/inf-ttrace.c b/gdb/inf-ttrace.c index 8847c2c..4139355 100644 --- a/gdb/inf-ttrace.c +++ b/gdb/inf-ttrace.c @@ -758,8 +758,8 @@ inf_ttrace_attach (char *args, int from_tty) static void inf_ttrace_detach (char *args, int from_tty) { - int sig = 0; pid_t pid = ptid_get_pid (inferior_ptid); + int sig = 0; if (from_tty) { @@ -894,9 +894,14 @@ inf_ttrace_wait (ptid_t ptid, struct target_waitstatus *ourstatus) #endif case TTEVT_EXEC: - /* Make it look like a breakpoint. */ - ourstatus->kind = TARGET_WAITKIND_STOPPED; - ourstatus->value.sig = TARGET_SIGNAL_TRAP; + ourstatus->kind = TARGET_WAITKIND_EXECD; + ourstatus->value.execd_pathname = + xmalloc (tts.tts_u.tts_exec.tts_pathlen + 1); + if (ttrace (TT_PROC_GET_PATHNAME, tts.tts_pid, 0, + (uintptr_t)ourstatus->value.execd_pathname, + tts.tts_u.tts_exec.tts_pathlen, 0) == -1) + perror_with_name (("ttrace")); + ourstatus->value.execd_pathname[tts.tts_u.tts_exec.tts_pathlen] = 0; break; case TTEVT_EXIT: |