Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Christophe PLANAT <christophe.planat@st.com>
To: qqi@world.std.com
Cc: gdb@sources.redhat.com
Subject: Re: Interface gdb with a embedded custom RTOS
Date: Mon, 02 Apr 2001 01:42:00 -0000	[thread overview]
Message-ID: <3AC83B41.D3068AB@st.com> (raw)
In-Reply-To: <H00004920a2ec543@MHS>

qqi@world.std.com wrote:

> I put some documents, gdb patches and code implementing multithreaded
> support for RTEMS on my web site: http://world.std.com/~qqi under
> the heading of GDB remote protocol. I suppose it may answer a few
> questions you have.
>
> Thanks,
>
> Aleksey
>
>
> On Fri, 30 Mar 2001, Christophe PLANAT wrote:
>
> > Hi everybody,
> >
> > I'm using GDB and searching how to interface GDB with a custom EMBEDDED
> > OS in a USER APPLICATION.
> >
> > Question :
> > ----------
> >
> > Does the GDB thread control is dedicated to address MULTI-THREAD TARGETS
> >
> > (such as multi-thread ISS) on which one may download any user program
> > (not threaded) - fig 1 ?
> >
> >                 OR
> >
> > Does the GDB thread control is dedicated to address MULTI-THREAD
> > PROGRAMS downloaded in any ISS (not threaded) - fig 2 ?
> >
> > fig 1 :
> >             |--|
> > |------|    |  |      |--------------------|
> > | GDB  |  thread API  | MULTI-THREADED ISS |<---- download (thru GDB)
> > |------|    |  |      | | th1 | th2 | ...  |      some not threaded user
> >
> >             |--|      |--------------------|      pgm
> >
> >
> > fig 2 :
> >             |--|
> > |------|    |  |      |-----------------|
> > | GDB  |  thread API  |  Some  ISS      |<---- download (thru GDB)
> > |------|    |  |      |  (not threaded) |      MULTI-THREADED user pgm
> >             |--|      |-----------------|
> >
> >
> >
> > In case of fig 2 where an embedded RTOS controls a user application, how
> > does the GDB thread controller controls the RTOS ?
> >
> > For instance, the binary loaded by GDB includes the user application and
> > the RTOS in the code. The user program is started by GDB. In the main,
> > the OS is initialized, started and the user threads are then created and
> > started. How does GDB discuss with the OS :
> >
> >   - the OS is stopped at specifics points and out of context calls are
> > done by the user in order to get threads info, set breakpoints in
> > threads ...
> >      or
> >   - the OS never dies when started by the user main() and discuss with
> > GDB. Ths OS is never stopped
> >
> > I don't understand how the debugger may discuss with an OS started by
> > the user application, be able to break thread, get kernel info, withtout
> > stopping the OS ?
> >
> > I need some info in order to implement the API between the debugger and
> > the OS ?
> >
> >
> > Context for instance:
> > ---------------------
> >
> > A multi-threaded program uses an embedded kernel (say myos). The
> > processor is represented by a simulator (not threaded) targeted in GDB.
> >
> > I analysed GDB 5.0 files concerning the thread control (thread.c,
> > gdbthread.h. and hpux-thread.c, nachos-thread.c  examples) but I don't
> > see how does the debugger (which controls the simulator) interfaces with
> >
> > the OS kernel which is at the application level -- running on the
> > simulator (fig 2) ?
> >
> > What I understand (is it true ?) :
> >
> > GDB core uses internally a thread controller (thread.c). The user writes
> >
> > an OS dependant file [for instance myos-thread.c] and primitivers
> > pointed by GDB core through the init_myos_thread_ops structure. Each
> > primitive may use OS dependant primitives listed in gdbthread.h.
> >
> > But in this scheme, how does GDB interface with the embedded myos kernel
> >
> > (fig 2) which is linked to the application program ? GDB (and ISS) are
> > not at the same level that myos kernel ?
> >
> > Thanks a lot if you can help me on this very important subject.
> >
> > Christophe Planat
> >
> >
> > --
> > ----------------------------------------------------------------------
> > | Christophe PLANAT                 | Embedded Systems Technology    |
> > | Email : Christophe.Planat@st.com  | STMicroelectronics             |
> > | Phone : +33 04 76 92 68 82        | 850, rue Jean-Monnet           |
> > | Fax   : +33 04 76 92 50 94        | BP 16 - 38921 Crolles - France |
> > ----------------------------------------------------------------------
> >
> >
> >

Thanks a lot for this invaluable information. I am going to analyse your
documents.

Christophe

--
----------------------------------------------------------------------
| Christophe PLANAT                 | Embedded Systems Technology    |
| Email : Christophe.Planat@st.com  | STMicroelectronics             |
| Phone : +33 04 76 92 68 82        | 850, rue Jean-Monnet           |
| Fax   : +33 04 76 92 50 94        | BP 16 - 38921 Crolles - France |
----------------------------------------------------------------------




       reply	other threads:[~2001-04-02  1:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <H00004920a2ec543@MHS>
2001-04-02  1:42 ` Christophe PLANAT [this message]
     [not found] <H00004920a3028a2@MHS>
2001-04-05  8:45 ` Christophe PLANAT
2001-04-05 14:20   ` Quality Quorum
2001-03-30  5:55 Christophe PLANAT
2001-03-30  7:02 ` Quality Quorum
2001-04-01  0:54   ` Eli Zaretskii
2001-04-01  9:26     ` qqi

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=3AC83B41.D3068AB@st.com \
    --to=christophe.planat@st.com \
    --cc=gdb@sources.redhat.com \
    --cc=qqi@world.std.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