$Id: update-patches 24 2008-08-31 14:56:13Z wbx $ --- strace-4.5.18.orig/util.c 2008-08-19 06:47:51.000000000 +0200 +++ strace-4.5.18/util.c 2009-01-02 21:24:05.530098238 +0100 @@ -1097,6 +1097,12 @@ struct tcb *tcp; #elif defined(SH64) if (upeek(tcp->pid, REG_PC ,&pc) < 0) return -1; +#elif defined(CRISV10) + if (upeek(tcp->pid, 4*PT_IRP, &pc) < 0) + return -1; +#elif defined(CRISV32) + if (upeek(tcp->pid, 4*PT_ERP, &pc) < 0) + return -1; #endif return pc; #endif /* LINUX */ @@ -1245,6 +1251,22 @@ struct tcb *tcp; return; } tprintf("[%08lx] ", pc); +#elif defined(CRISV10) + long pc; + + if (upeek(tcp->pid, 4*PT_IRP, &pc) < 0) { + PRINTBADPC; + return; + } + tprintf("[%08lx] ", (unsigned long)pc); +#elif defined(CRISV32) + long pc; + + if (upeek(tcp->pid, 4*PT_ERP, &pc) < 0) { + PRINTBADPC; + return; + } + tprintf("[%08lx] ", (unsigned long)pc); #endif /* !architecture */ #endif /* LINUX */ @@ -1444,6 +1466,13 @@ typedef struct regs arg_setup_state; # define arg0_offset (REG_OFFSET+16) # define arg1_offset (REG_OFFSET+24) # define restore_arg0(tcp, state, val) 0 +# elif defined CRISV10 || defined CRISV32 +# define arg0_offset (4*PT_R11) +# define arg1_offset (4*PT_ORIG_R10) +# define restore_arg0(tcp, state, val) 0 +# define restore_arg1(tcp, state, val) 0 +# define arg0_index 1 +# define arg1_index 0 # else # define arg0_offset 0 # define arg1_offset 4