linux-mips
[Top] [All Lists]

Re: Filling in struct mips64_watch_regs from a 32 bit process

To: Earl Chew <echew@ixiacom.com>
Subject: Re: Filling in struct mips64_watch_regs from a 32 bit process
From: David Daney <ddaney@caviumnetworks.com>
Date: Mon, 31 Jan 2011 17:24:49 -0800
Cc: "linux-mips@linux-mips.org" <linux-mips@linux-mips.org>
In-reply-to: <4D475DFC.1040401@ixiacom.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <4D4756B5.4010100@ixiacom.com> <4D475BCB.9050403@caviumnetworks.com> <4D475DFC.1040401@ixiacom.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) 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.

David Daney


<Prev in Thread] Current Thread [Next in Thread>