]> git.hungrycats.org Git - linux/commitdiff
[PATCH] gdb/strace fix for 2.5.x
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>
Sun, 28 Apr 2002 12:20:42 +0000 (05:20 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sun, 28 Apr 2002 12:20:42 +0000 (05:20 -0700)
Yes, gdb and strace are broken on alpha since 2.5.6, IIRC.
Some necessary 'thread_info' changes still are missing in ptrace.c.

Fixed thus.

arch/alpha/kernel/ptrace.c

index 180e8e78e73e6222cf9b98b0be428081f5c52343..c73317b256aed49db69bfe229415f82019fcb2a3 100644 (file)
@@ -106,7 +106,7 @@ get_reg_addr(struct task_struct * task, unsigned long regno)
                zero = 0;
                addr = &zero;
        } else {
-               addr = (long *)((long)task + regoff[regno]);
+               addr = (long *)((long)task->thread_info + regoff[regno]);
        }
        return addr;
 }
@@ -340,9 +340,9 @@ sys_ptrace(long request, long pid, long addr, long data,
                if ((unsigned long) data > _NSIG)
                        goto out;
                if (request == PTRACE_SYSCALL)
-                       set_thread_flag(TIF_SYSCALL_TRACE);
+                       set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
                else
-                       clear_thread_flag(TIF_SYSCALL_TRACE);
+                       clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
                child->exit_code = data;
                wake_up_process(child);
                /* make sure single-step breakpoint is gone. */
@@ -371,7 +371,7 @@ sys_ptrace(long request, long pid, long addr, long data,
                        goto out;
                /* Mark single stepping.  */
                child->thread_info->bpt_nsaved = -1;
-               clear_thread_flag(TIF_SYSCALL_TRACE);
+               clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
                wake_up_process(child);
                child->exit_code = data;
                /* give it a chance to run. */