Any way to avoid inserting & removing breakpoints?

J.T. Conklin
Fri Dec 18 11:15:00 GMT 1998

> (J.T. Conklin) writes:
> > I finished my breakpoint extensions prototype, and discovered that GDB
> > inserts all enabled breakpoints when program execution is resumed, and
> > removes them when it regains control.  
> Yes, this is a "feature".  It's pretty well wired into GDB.  It might
> be possible to make insert_breakpoints() and remove_breakpoints() do
> some sort of caching-like thing, but I'm not sure that all target
> memory reads know about substituting original code, so you might get
> punished when you're doing disassembly or prologue analysis.

You're right, target memory reads don't know about substituting the
original code.  I got around that problem by having my stub restore
memory before control is returned to GDB and to (re-)insert break-
points just before program execution resumes.

I haven't investigated, but it's conceivable that some ROM monitors do
the same thing (for much the same reasons --- simplifying internal
disassembly).  If GDB was extended to avoid inserting and removing
breakpoints, it could only be used on targets that manage breakpoints
in this manner.


J.T. Conklin
RedBack Networks

More information about the Gdb mailing list