|To:||Earl Chew <firstname.lastname@example.org>|
|Subject:||Re: Filling in struct mips64_watch_regs from a 32 bit process|
|From:||David Daney <email@example.com>|
|Date:||Mon, 31 Jan 2011 17:24:49 -0800|
|References:||<4D4756B5.firstname.lastname@example.org> <4D475BCB.email@example.com> <4D475DFC.firstname.lastname@example.org>|
|User-agent:||Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:220.127.116.11) Gecko/20101027 Fedora/3.0.10-1.fc12 Thunderbird/3.0.10|
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.
|<Prev in Thread]||Current Thread||[Next in Thread>|
|Previous by Date:||Re: Filling in struct mips64_watch_regs from a 32 bit process, Earl Chew|
|Next by Date:||Re: Filling in struct mips64_watch_regs from a 32 bit process, Earl Chew|
|Previous by Thread:||Re: Filling in struct mips64_watch_regs from a 32 bit process, Earl Chew|
|Next by Thread:||Re: Filling in struct mips64_watch_regs from a 32 bit process, Earl Chew|
|Indexes:||[Date] [Thread] [Top] [All Lists]|