diff options
Diffstat (limited to 'c/src/lib/librdbg/ptrace.c')
-rw-r--r-- | c/src/lib/librdbg/ptrace.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/c/src/lib/librdbg/ptrace.c b/c/src/lib/librdbg/ptrace.c index 158bd57cbb..91772bb2bd 100644 --- a/c/src/lib/librdbg/ptrace.c +++ b/c/src/lib/librdbg/ptrace.c @@ -5,6 +5,8 @@ * * Synopsis = rkdb/rkdb.c * + * $Id$ + * ************************************************************************** */ @@ -142,7 +144,7 @@ ptrace (int request, int pid, char* addr, int data, char* addr2) */ if (diag == 0) { - copyback_data_cache_and_invalidate_instr_cache(); + copyback_data_cache_and_invalidate_instr_cache(addr, sizeof data); return 0; } goto mem_error; @@ -162,11 +164,7 @@ ptrace (int request, int pid, char* addr, int data, char* addr2) ctx = GetExceptCtx (currentTargetThread); - if ( - ctx->ctx->idtIndex != I386_EXCEPTION_DEBUG && - ctx->ctx->idtIndex != I386_EXCEPTION_BREAKPOINT && - ctx->ctx->idtIndex != I386_EXCEPTION_ENTER_RDBG - ) { + if (!isRdbgException(ctx)) { CannotRestart = 1; setErrno (EIO); return -1; |