On 01/31/2011 05:12 PM, Earl Chew wrote:
I notice that a 32 bit process running on a 64 bit kernel is expected to
know that it should fill in mips64_watch_regs --- even though it is running
against a 32 bit ABI.
Is this an oversight, or am I missing something ?
It is intentional.
Oh I see ... I have to call PTRACE_SET_WATCH_REGS first in order to figure
out whether the kernel is expecting me to use pt_watch_style_mips32 or
pt_watch_style_mips64.
That would be PTRACE_GET_WATCH_REGS. It will tell you the width of the
registers as well as how many are available (in the num_valid field) and
the properties of each (in the watch_masks[] fields).
Fill in watchlo[] and watchhi[], write them back with
PTRACE_SET_WATCH_REGS, then sit back and wait for SIGTRAP.
David Daney