public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: jtc@redback.com (J.T. Conklin)
To: Todd Whitesel <toddpw@windriver.com>
Cc: gdb@sourceware.cygnus.com (GDB)
Subject: Re: breakpoint insert API (was: A patch for ia32 hardware watchpoint.)
Date: Sat, 01 Apr 2000 00:00:00 -0000	[thread overview]
Message-ID: <5mzos15ffa.fsf@jtc.redbacknetworks.com> (raw)
Message-ID: <20000401000000.zzyU4T8DzQL3swHaM5ECuAoAFv05VnFOxgCctkrOc4Q@z> (raw)
In-Reply-To: <200003100133.RAA00070@alabama.wrs.com>

>>>>> "Todd" == Todd Whitesel <toddpw@windriver.com> writes:
jtc> One issue that I'm not sure how to address is that there are several
jtc> places breakpoints are inserted where a breakpoint has not been
jtc> constructed.  Most of these occur in tdep code which implements single
jtc> step with breakpoints on processors without a trace mode.

Todd> Aiee! Such code is evil and must be destroyed.

I don't think it's that bad.  

Todd> One important value of the full breakpoint machinery is that it
Todd> can help avoid the same location being patched twice. Any time
Todd> we patch the same instruction twice, we must un-patch it in
Todd> exactly reverse order or else we leave a breakpoint instruction
Todd> sitting in the code -- Not Good.

Todd> So I would have to argue that the singlestep logic must either
Todd> happen at a really low level (this guarantees it will patch last
Todd> and un-patch first) or must go through the real breakpoint logic
Todd> which can do duplicate detection.

The SOFTWARE_SINGLE_STEP() macro is called at a low enough level that
it inserts and remove trap instructions without effecting GDB's high-
level breakpoints.  So I think we're OK.  As a result, I wouldn't be
suprised if steping into a breakpoint didn't behave the same as on a
machine with hardware single-step.  

        --jtc

-- 
J.T. Conklin
RedBack Networks

  reply	other threads:[~2000-04-01  0:00 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-03-07 13:33 A patch for ia32 hardware watchpoint H . J . Lu
2000-03-07 21:52 ` J.T. Conklin
2000-03-08  0:46   ` Todd Whitesel
2000-03-08  6:04     ` Jim Kingdon
2000-03-08 19:44       ` Todd Whitesel
2000-04-01  0:00         ` Todd Whitesel
2000-03-09  7:06       ` Andrew Cagney
2000-04-01  0:00         ` Andrew Cagney
2000-04-01  0:00       ` Jim Kingdon
2000-03-09  5:28     ` Eli Zaretskii
2000-04-01  0:00       ` Eli Zaretskii
2000-03-09 11:28     ` breakpoint insert API (was: A patch for ia32 hardware watchpoint.) J.T. Conklin
2000-03-09 15:15       ` Jim Kingdon
2000-04-01  0:00         ` Jim Kingdon
2000-03-09 15:33       ` Andrew Cagney
2000-03-09 17:28         ` Todd Whitesel
2000-03-14 15:15           ` J.T. Conklin
2000-03-14 15:31             ` Todd Whitesel
2000-04-01  0:00               ` Todd Whitesel
2000-04-01  0:00             ` J.T. Conklin
2000-04-01  0:00           ` Todd Whitesel
2000-03-14 14:10         ` J.T. Conklin
2000-03-21  2:50           ` Andrew Cagney
2000-04-01  0:00             ` Andrew Cagney
2000-04-01  0:00           ` J.T. Conklin
2000-04-01  0:00         ` Andrew Cagney
2000-03-09 17:33       ` Todd Whitesel
2000-03-14 14:56         ` J.T. Conklin [this message]
2000-03-21  3:11           ` Andrew Cagney
2000-03-21  6:10             ` Richard Earnshaw
2000-04-01  0:00               ` Richard Earnshaw
2000-04-01  0:00             ` Andrew Cagney
2000-04-01  0:00           ` J.T. Conklin
2000-04-01  0:00         ` Todd Whitesel
2000-04-01  0:00       ` J.T. Conklin
2000-04-01  0:00     ` A patch for ia32 hardware watchpoint Todd Whitesel
2000-04-01  0:00   ` J.T. Conklin
2000-03-08  2:14 ` Eli Zaretskii
2000-04-01  0:00   ` Eli Zaretskii
2000-03-08  3:32 ` Eli Zaretskii
2000-04-01  0:00   ` Eli Zaretskii
2000-04-01  0:00 ` H . J . Lu
2000-03-13  1:50 breakpoint insert API (was: A patch for ia32 hardware watchpoint.) Stephane.Bihan
2000-03-14 14:47 ` J.T. Conklin
2000-04-01  0:00   ` J.T. Conklin
2000-04-01  0:00 ` Stephane.Bihan
2000-03-15  4:21 Stephane.Bihan
2000-03-15  7:51 ` J.T. Conklin
2000-04-01  0:00   ` J.T. Conklin
2000-04-01  0:00 ` Stephane.Bihan
2000-03-15  9:07 Stephane.Bihan
2000-04-01  0:00 ` Stephane.Bihan

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=5mzos15ffa.fsf@jtc.redbacknetworks.com \
    --to=jtc@redback.com \
    --cc=gdb@sourceware.cygnus.com \
    --cc=toddpw@windriver.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).