This is the mail archive of the ecos-discuss@sourceware.cygnus.com mailing list for the eCos project. See the eCos home page for more information.


[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

Re: [ECOS] gdb vs. eCos?




   Date: Fri, 12 Feb 1999 10:46:08 -0600
   From: "Kerry S. Kimbrough" <kerry@cae-plus.com>

(Hi Kerry!)

   I could find no info on this topic in the FAQ or other info at
   www.cygnus.com/ecos, etc. But I expect this is an easy question for someone
   on this list.

   The question: what's the story on integration of gdb with eCos? I assume
   that there exists a version of gdb that is "eCos-aware", but am I right? If
   so, can someone point me to details like gdb version, command documentation,
   etc.? By "eCos-aware", of course, I mean a gdb that can view RTOS info
   (e.g. task status, task priorities), that can set breakpoints conditioned on
   task info (e.g. break in task X only), that can debug interrupt handlers,
   etc.

eCos support in GDB consists of a couple extensions so far.  The first
is to display additional information about eCos threads, such as
priority.  Both this and basic thread control are integrated into
GDB's basic thread support, which is documented in the GDB manual.
GDB's thread support does allow per-thread breakpoints and such, so
most of what people want is there already, the main work for eCos was
to make it understand GDB's standard protocol for all this.  The
Insight (gdbtk) GUI for GDB includes a thread window as well.

The second is a much more experimental change to better control
stepping of threads by locking out the scheduler.  Right now, when you
step, you unleash the scheduler, which can have some pretty
counterintuitive side effects.  So we've defined a new GDB variable
`scheduler-locking' that you can set as desired, either letting all
threads run, or just the one that you're stepping.  Again, this is
still experimental (Michael Snyder will hate me even for mentioning
it!).

We haven't done anything about interrupt handler debugging.  My
understanding is that eCos might need some additional tweaking for
that.  (True eCos'ers jump in here please.)  GDB doesn't really care -
if the OS hands it a valid state, it will try to make sense of it,
whether it's in the main code or in an interrupt handler.

There are a couple other ideas in the works, but they're not far
enough to talk about yet.  We are interested in getting additional
suggestions too!

Oh yeah, the GDB tweaks above are post-4.17.  The thread support you
can find in the eCos sourceware release, the scheduler locking in
current GDB snapshots.  Both will be in 4.18, which is going to be
coming out soon.

							Stan