From: Frank Rowand <frank_rowand@mvista.com>
To: law@redhat.com
Cc: John David Anglin <dave@hiauly1.hia.nrc.ca>,
Richard Hirst <rhirst@linuxcare.com>,
parisc-linux@puffin.external.hp.com
Subject: Re: [parisc-linux] Single-stepping
Date: Wed, 15 Nov 2000 13:16:28 -0800 [thread overview]
Message-ID: <3A12FD2C.665AEF89@mvista.com> (raw)
In-Reply-To: 15884.974320259@upchuck
law@redhat.com wrote:
>
> In message <200011151949.OAA22929@hiauly1.hia.nrc.ca>you write:
> > > I've been helping Alan Modra out with kernel changes to support
> > > single stepping for gdb. Paul Bame suggested I bounced our ideas
> > > off you in case you (or anyone else) had any comments. I havn't
> > > actually committed my changes yet.
> > >
> > > The basic approach is to use the recovery counter to generate
> > > a trap every instruction. The scheme is complicated because a
> > > suspended process may or may not return to user space via an RFI.
> >
> > I really don't know enough to comment on the implementation choice. Why
> > did you decide on this approach as opposed to inserting breaks and
> > enabling the taken branch branch trap (T)? It would appear that the recove
> > ry
> > counter was intended to provide software recovery from hardware faults
> > in fault tolerant systems. Possibly, Grant could comment on whether
> > it is actually useful for this purpose.
> Err, we tried that at the UofU in our mach port to the PA -- there's a problem
> with that scheme, though I don't remember precisely what it was. I believe
> there were cases where the recovery counter doesn't trigger a trap, possibly
> due to nullified instructions.
>
> You might look at the UofU BSD code, which I believe used breakpoints and
> branch taken traps instad.
>
> jeff
>
I implemented two different single step algorithms for a a _kernel_ debugger
for hp-ux. The algorithm used could be chosen by a compile switch, because
each method had cases that weren't handled well - for some debugging tasks
one algorithm was superior to the other. Part of my problem with the
recovery counter was that other services in the hp-ux kernel also used the
recovery counter.
I liked the recovery counter method better than my second method (but had to
deal with collisions with the other kernel services). My second method was
to insert a breakpoint at the target of the single step. It's a pain to do
that because of issues with delay slots, branching, and nullification.
I guess the point of all this rambling is to say that the recovery counter has
been successfully used by a debugger for single stepping.
-Frank
--
Frank Rowand <frank_rowand@mvista.com>
MontaVista Software, Inc
next prev parent reply other threads:[~2000-11-15 21:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-11-15 18:48 [parisc-linux] Single-stepping Richard Hirst
2000-11-15 19:49 ` John David Anglin
2000-11-15 20:30 ` law
2000-11-15 21:16 ` Frank Rowand [this message]
2000-11-15 21:47 ` Stan Sieler
2000-11-15 21:08 ` Stan Sieler
2000-11-16 12:09 ` Richard Hirst
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=3A12FD2C.665AEF89@mvista.com \
--to=frank_rowand@mvista.com \
--cc=dave@hiauly1.hia.nrc.ca \
--cc=frowand@mvista.com \
--cc=law@redhat.com \
--cc=parisc-linux@puffin.external.hp.com \
--cc=rhirst@linuxcare.com \
/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