Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Interface gdb with a embedded custom RTOS
@ 2001-03-30  5:55 Christophe PLANAT
  2001-03-30  7:02 ` Quality Quorum
  0 siblings, 1 reply; 7+ messages in thread
From: Christophe PLANAT @ 2001-03-30  5:55 UTC (permalink / raw)
  To: gdb

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 |
----------------------------------------------------------------------




^ permalink raw reply	[flat|nested] 7+ messages in thread
[parent not found: <H00004920a2ec543@MHS>]
[parent not found: <H00004920a3028a2@MHS>]

end of thread, other threads:[~2001-04-05 14:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-03-30  5:55 Interface gdb with a embedded custom RTOS Christophe PLANAT
2001-03-30  7:02 ` Quality Quorum
2001-04-01  0:54   ` Eli Zaretskii
2001-04-01  9:26     ` qqi
     [not found] <H00004920a2ec543@MHS>
2001-04-02  1:42 ` Christophe PLANAT
     [not found] <H00004920a3028a2@MHS>
2001-04-05  8:45 ` Christophe PLANAT
2001-04-05 14:20   ` Quality Quorum

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox