From: "Albert Cahalan" <acahalan@gmail.com>
To: "Chuck Ebbert" <76306.1226@compuserve.com>
Cc: "Linus Torvalds" <torvalds@osdl.org>,
"Alan Cox" <alan@lxorguk.ukuu.org.uk>, "Andi Kleen" <ak@suse.de>,
"Arjan van de Ven" <arjan@infradead.org>,
"Andrew Morton" <akpm@osdl.org>, "Ingo Molnar" <mingo@elte.hu>,
linux-kernel <linux-kernel@vger.kernel.org>,
"Roland Dreier" <roland@redhat.com>
Subject: Re: ptrace bugs and related problems
Date: Mon, 31 Jul 2006 20:30:07 -0400 [thread overview]
Message-ID: <787b0d920607311730s5a951a5cv38eea7db03c759c8@mail.gmail.com> (raw)
In-Reply-To: <200607310224_MC3-1-C689-D6DC@compuserve.com>
On 7/31/06, Chuck Ebbert <76306.1226@compuserve.com> wrote:
> On Thu, 27 Jul 2006 02:55:17 -0400, Albert Cahalan wrote:
> > There is also no check
> > for failure, as when the popf or iret takes an alignment exception
> > or hits an unmapped page.
>
> Can that happen? Singlestep traps happen after the instruction has
> already executed. Or are you talking about starting to singlestep
> after hitting a code breakpoint fault?
You're at a popf that can not complete.
You single-step.
The kernel sets TF.
The kernel notes the popf.
The kernel assumes that TF will be determined by the popf.
The kernel tries to run the popf.
The popf faults, leaving TF unmodified.
The kernel fails to clear TF.
> > There is the pushf problem. Single-stepping this simple code
> > does not work: pushf ; popf
>
> The debugger needs to mask TF in the pushed flags. Read the comment
> in is_at_popf().
I saw the comment. I don't consider that documentation.
Why even have single-step support if the debugger has to
mess with eflags manually anyway? I might as well just
exclusively use PTRACE_SYSCALL.
I think the term is "known bug".
> > The is_at_popf function on x86-64 fails to account for instruction
> > set differences. Many prefixes are only valid in 32-bit mode, and
> > many others are only valid in 64-bit mode.
>
> I only see one bug here: the REX prefixes are 'inc' instructions
> in compatibility mode. Otherwise, prefixes that are only valid in
> 32-bit mode are ignored in 64-bit mode.
Oh, OK, I thought they faulted. (AMD botched this)
There is a problem with instruction length though.
The buffer is 16 bytes long, but should be only 15.
The 0xf0 (lock) prefix is not valid for popf or iret.
next prev parent reply other threads:[~2006-08-01 0:30 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-31 6:21 Chuck Ebbert
2006-08-01 0:30 ` Albert Cahalan [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-08-01 5:52 Chuck Ebbert
2006-07-28 20:07 Chuck Ebbert
2006-07-27 6:55 Albert Cahalan
2006-07-27 7:19 ` David Miller
2006-07-27 20:31 ` Daniel Jacobowitz
2006-07-28 1:17 ` Albert Cahalan
2006-07-28 3:47 ` Daniel Jacobowitz
2006-07-28 22:28 ` Albert Cahalan
2006-07-28 22:36 ` David Miller
2006-07-31 19:00 ` Daniel Jacobowitz
2006-08-01 0:08 ` Albert Cahalan
2006-08-01 1:37 ` Daniel Jacobowitz
2006-08-01 5:22 ` Albert Cahalan
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=787b0d920607311730s5a951a5cv38eea7db03c759c8@mail.gmail.com \
--to=acahalan@gmail.com \
--cc=76306.1226@compuserve.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjan@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=roland@redhat.com \
--cc=torvalds@osdl.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
all inboxes | Powered by JetHome®