lkml.org 
[lkml]   [2007]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 21/27] ptrace: generic PTRACE_SINGLEBLOCK
    Date

    This makes ptrace_request handle PTRACE_SINGLEBLOCK along with
    PTRACE_CONT et al. The new generic code makes use of the
    arch_has_block_step macro and generic entry points on machines
    that define them.

    Signed-off-by: Roland McGrath <roland@redhat.com>
    ---
    kernel/ptrace.c | 15 ++++++++++++++-
    1 files changed, 14 insertions(+), 1 deletions(-)

    diff --git a/kernel/ptrace.c b/kernel/ptrace.c
    index 309796a..2824726 100644
    --- a/kernel/ptrace.c
    +++ b/kernel/ptrace.c
    @@ -373,6 +373,12 @@ static int ptrace_setsiginfo(struct task_struct *child, siginfo_t __user * data)
    #define is_singlestep(request) 0
    #endif

    +#ifdef PTRACE_SINGLEBLOCK
    +#define is_singleblock(request) ((request) == PTRACE_SINGLEBLOCK)
    +#else
    +#define is_singleblock(request) 0
    +#endif
    +
    #ifdef PTRACE_SYSEMU
    #define is_sysemu_singlestep(request) ((request) == PTRACE_SYSEMU_SINGLESTEP)
    #else
    @@ -396,7 +402,11 @@ static int ptrace_resume(struct task_struct *child, long request, long data)
    clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
    #endif

    - if (is_singlestep(request) || is_sysemu_singlestep(request)) {
    + if (is_singleblock(request)) {
    + if (unlikely(!arch_has_block_step()))
    + return -EIO;
    + user_enable_block_step(child);
    + } else if (is_singlestep(request) || is_sysemu_singlestep(request)) {
    if (unlikely(!arch_has_single_step()))
    return -EIO;
    user_enable_single_step(child);
    @@ -438,6 +448,9 @@ int ptrace_request(struct task_struct *child, long request,
    #ifdef PTRACE_SINGLESTEP
    case PTRACE_SINGLESTEP:
    #endif
    +#ifdef PTRACE_SINGLEBLOCK
    + case PTRACE_SINGLEBLOCK:
    +#endif
    #ifdef PTRACE_SYSEMU
    case PTRACE_SYSEMU:
    case PTRACE_SYSEMU_SINGLESTEP:
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-11-25 23:11    [W:0.027 / U:0.116 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site