From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC][PATCH] ARM: ptrace: remove single-step emulation code
Date: Mon, 24 Jan 2011 16:18:17 -0000 [thread overview]
Message-ID: <000501cbbbe2$4fb55d00$ef201700$@deacon@arm.com> (raw)
In-Reply-To: <84r5c2hbpo.fsf@sauna.l.org>
Hi Timo,
> I agree that decoding ARM instruction in kernel space is really
> funky. Perhaps my best be would be to copy the old kernel code to my
> own userland tool and use PTRACE_POKETEXT to set breakpoints? The only
> drawbacks I see are:
You could copy the old code, but it may need updating to support ARMv7.
It also doesn't handle Thumb instructions as it stands.
> 1) I need more syscalls per instruction: PTRACE_GETREGS +
> PTRACE_SINGLESTEP vs. PTRACE_GETREGS + PTRACE_PEEKTEXT +
> PTRACE_POKETEXT * (number of potential branch targets) +
> PTRACE_CONTINUE but I guess I can live with this.
Ok.
> 2) itrace does not know where user helpers are. Parsing
> /proc/config.gz at runtime for CONFIG_VECTORS_BASE is probably not a
> good idea. If this location does not change often it is not a problem
> to hardcode it in itrace.
>
> > GDB, for example, uses PTRACE_POKETEXT and PTRACE_PEEKTEXT to manage
> > breakpoints itself and does not require any kernel assistance.
>
> I was going to say that GDB does not work either with user helpers but
> it seems that in
>
> commit 52d6c8167d4e91d89bc5c26cf0bacc2200272f96
> Author: Julian Brown <julian@codesourcery.com>
> Date: Thu Jul 30 23:05:00 2009 +0000
>
> the function arm_catch_kernel_helper_return was added to GDB. They
> hard code 0xffff0000 but I guess that is ok?
I think it's always mapped at the high address if you have an MMU, so
you might need to detect the uclinux case.
Will
prev parent reply other threads:[~2011-01-24 16:18 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-19 15:07 [RFC][PATCH] ARM: ptrace: remove single-step emulation code Will Deacon
2011-01-19 15:19 ` Russell King - ARM Linux
2011-01-19 15:37 ` Will Deacon
2011-01-19 22:06 ` Arnaud Patard (Rtp)
2011-01-20 9:23 ` Will Deacon
2011-01-24 9:50 ` Timo Juhani Lindfors
2011-01-24 16:18 ` Will Deacon [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000501cbbbe2$4fb55d00$ef201700$@deacon@arm.com' \
--to=will.deacon@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).