From 00de6acc8cf39313d6f2a0858955f3a2afcb67c0 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 2 Aug 2007 14:59:16 +0000 Subject: [PATCH] 2007-08-02 Joel Sherrill * Makefile.am, configure.ac, develenv/direct.t: Remove RDBG. * rgdb_specs/.cvsignore, rgdb_specs/Makefile.am, rgdb_specs/comm.t, rgdb_specs/conclusion.t, rgdb_specs/daemon.t, rgdb_specs/gdbinternals.t, rgdb_specs/interfacing.t, rgdb_specs/intro.t, rgdb_specs/layers.eps, rgdb_specs/layers.jpg, rgdb_specs/layers.txt, rgdb_specs/objectives.t, rgdb_specs/process.eps, rgdb_specs/process.jpg, rgdb_specs/process.txt, rgdb_specs/revision.t, rgdb_specs/rgdb_specs.texi, rgdb_specs/seqbreak.eps, rgdb_specs/seqbreak.jpg, rgdb_specs/seqbreak.txt, rgdb_specs/seqdetach.eps, rgdb_specs/seqdetach.jpg, rgdb_specs/seqdetach.txt, rgdb_specs/seqinit.eps, rgdb_specs/seqinit.jpg, rgdb_specs/seqinit.txt, rtems_gdb/.cvsignore, rtems_gdb/Makefile.am, rtems_gdb/commands.t, rtems_gdb/example.t, rtems_gdb/intro.t, rtems_gdb/rtems_gdb.texi, rtems_gdb/started.t, rtems_gdb/swarch.t, rtems_gdb/trouble.t: Removed. --- doc/ChangeLog | 19 + doc/Makefile.am | 2 +- doc/configure.ac | 2 - doc/develenv/direct.t | 5 - doc/rgdb_specs/.cvsignore | 36 -- doc/rgdb_specs/Makefile.am | 80 ---- doc/rgdb_specs/comm.t | 98 ----- doc/rgdb_specs/conclusion.t | 33 -- doc/rgdb_specs/daemon.t | 437 --------------------- doc/rgdb_specs/gdbinternals.t | 254 ------------- doc/rgdb_specs/interfacing.t | 79 ---- doc/rgdb_specs/intro.t | 39 -- doc/rgdb_specs/layers.eps | 359 ------------------ doc/rgdb_specs/layers.jpg | Bin 31318 -> 0 bytes doc/rgdb_specs/layers.txt | 2 - doc/rgdb_specs/objectives.t | 307 --------------- doc/rgdb_specs/process.eps | 672 --------------------------------- doc/rgdb_specs/process.jpg | Bin 136532 -> 0 bytes doc/rgdb_specs/process.txt | 2 - doc/rgdb_specs/revision.t | 42 --- doc/rgdb_specs/rgdb_specs.texi | 110 ------ doc/rgdb_specs/seqbreak.eps | 311 --------------- doc/rgdb_specs/seqbreak.jpg | Bin 79883 -> 0 bytes doc/rgdb_specs/seqbreak.txt | 2 - doc/rgdb_specs/seqdetach.eps | 167 -------- doc/rgdb_specs/seqdetach.jpg | Bin 24799 -> 0 bytes doc/rgdb_specs/seqdetach.txt | 2 - doc/rgdb_specs/seqinit.eps | 204 ---------- doc/rgdb_specs/seqinit.jpg | Bin 34525 -> 0 bytes doc/rgdb_specs/seqinit.txt | 2 - doc/rtems_gdb/.cvsignore | 29 -- doc/rtems_gdb/Makefile.am | 61 --- doc/rtems_gdb/commands.t | 51 --- doc/rtems_gdb/example.t | 88 ----- doc/rtems_gdb/intro.t | 22 -- doc/rtems_gdb/rtems_gdb.texi | 106 ------ doc/rtems_gdb/started.t | 53 --- doc/rtems_gdb/swarch.t | 32 -- doc/rtems_gdb/trouble.t | 46 --- 39 files changed, 20 insertions(+), 3734 deletions(-) delete mode 100644 doc/rgdb_specs/.cvsignore delete mode 100644 doc/rgdb_specs/Makefile.am delete mode 100644 doc/rgdb_specs/comm.t delete mode 100644 doc/rgdb_specs/conclusion.t delete mode 100644 doc/rgdb_specs/daemon.t delete mode 100644 doc/rgdb_specs/gdbinternals.t delete mode 100644 doc/rgdb_specs/interfacing.t delete mode 100644 doc/rgdb_specs/intro.t delete mode 100644 doc/rgdb_specs/layers.eps delete mode 100644 doc/rgdb_specs/layers.jpg delete mode 100644 doc/rgdb_specs/layers.txt delete mode 100644 doc/rgdb_specs/objectives.t delete mode 100644 doc/rgdb_specs/process.eps delete mode 100644 doc/rgdb_specs/process.jpg delete mode 100644 doc/rgdb_specs/process.txt delete mode 100644 doc/rgdb_specs/revision.t delete mode 100644 doc/rgdb_specs/rgdb_specs.texi delete mode 100644 doc/rgdb_specs/seqbreak.eps delete mode 100644 doc/rgdb_specs/seqbreak.jpg delete mode 100644 doc/rgdb_specs/seqbreak.txt delete mode 100644 doc/rgdb_specs/seqdetach.eps delete mode 100644 doc/rgdb_specs/seqdetach.jpg delete mode 100644 doc/rgdb_specs/seqdetach.txt delete mode 100644 doc/rgdb_specs/seqinit.eps delete mode 100644 doc/rgdb_specs/seqinit.jpg delete mode 100644 doc/rgdb_specs/seqinit.txt delete mode 100644 doc/rtems_gdb/.cvsignore delete mode 100644 doc/rtems_gdb/Makefile.am delete mode 100644 doc/rtems_gdb/commands.t delete mode 100644 doc/rtems_gdb/example.t delete mode 100644 doc/rtems_gdb/intro.t delete mode 100644 doc/rtems_gdb/rtems_gdb.texi delete mode 100644 doc/rtems_gdb/started.t delete mode 100644 doc/rtems_gdb/swarch.t delete mode 100644 doc/rtems_gdb/trouble.t diff --git a/doc/ChangeLog b/doc/ChangeLog index 640ee60cd3..87582c054c 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,22 @@ +2007-08-02 Joel Sherrill + + * Makefile.am, configure.ac, develenv/direct.t: Remove RDBG. + * rgdb_specs/.cvsignore, rgdb_specs/Makefile.am, rgdb_specs/comm.t, + rgdb_specs/conclusion.t, rgdb_specs/daemon.t, + rgdb_specs/gdbinternals.t, rgdb_specs/interfacing.t, + rgdb_specs/intro.t, rgdb_specs/layers.eps, rgdb_specs/layers.jpg, + rgdb_specs/layers.txt, rgdb_specs/objectives.t, + rgdb_specs/process.eps, rgdb_specs/process.jpg, + rgdb_specs/process.txt, rgdb_specs/revision.t, + rgdb_specs/rgdb_specs.texi, rgdb_specs/seqbreak.eps, + rgdb_specs/seqbreak.jpg, rgdb_specs/seqbreak.txt, + rgdb_specs/seqdetach.eps, rgdb_specs/seqdetach.jpg, + rgdb_specs/seqdetach.txt, rgdb_specs/seqinit.eps, + rgdb_specs/seqinit.jpg, rgdb_specs/seqinit.txt, rtems_gdb/.cvsignore, + rtems_gdb/Makefile.am, rtems_gdb/commands.t, rtems_gdb/example.t, + rtems_gdb/intro.t, rtems_gdb/rtems_gdb.texi, rtems_gdb/started.t, + rtems_gdb/swarch.t, rtems_gdb/trouble.t: Removed. + 2007-06-21 Joel Sherrill * ada_user/ada_user.texi, bsp_howto/bsp_howto.texi, diff --git a/doc/Makefile.am b/doc/Makefile.am index f50e9fd209..4a8ed1b53f 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -9,7 +9,7 @@ ACLOCAL_AMFLAGS = -I ../aclocal SUBDIRS = tools started user bsp_howto porting develenv posix_users \ posix1003.1 filesystem itron3.0 networking ada_user started_ada \ - rtems_gdb rgdb_specs new_chapters relnotes cpu_supplement + new_chapters relnotes cpu_supplement if USE_HTML html_DATA = index.html HELP.html diff --git a/doc/configure.ac b/doc/configure.ac index 203228ea62..1bff2b82d8 100644 --- a/doc/configure.ac +++ b/doc/configure.ac @@ -209,8 +209,6 @@ filesystem/Makefile itron3.0/Makefile ada_user/Makefile started_ada/Makefile -rtems_gdb/Makefile -rgdb_specs/Makefile relnotes/Makefile new_chapters/Makefile cpu_supplement/Makefile diff --git a/doc/develenv/direct.t b/doc/develenv/direct.t index a321de7871..f899173b6c 100644 --- a/doc/develenv/direct.t +++ b/doc/develenv/direct.t @@ -258,11 +258,6 @@ This directory contains the networking components which might be tailored based upon the particular BSP. This includes the RTEMS telnetd, httpd, and ftpd servers. -@item $@{RTEMS_ROOT@}/c/src/librdbg/ -This directory contains the Ethernet-based remote debugging -stub. This software must be built to be intimately aware -of a particular CPU model. - @item $@{RTEMS_ROOT@}/c/src/librtems++/ This directory contains C++ classes which map to the RTEMS Classic API. diff --git a/doc/rgdb_specs/.cvsignore b/doc/rgdb_specs/.cvsignore deleted file mode 100644 index c8628836c5..0000000000 --- a/doc/rgdb_specs/.cvsignore +++ /dev/null @@ -1,36 +0,0 @@ -comm.texi -conclusion.texi -daemon.texi -gdbinternals.texi -index.html -interfacing.texi -intro.texi -layers.pdf -Makefile -Makefile.in -mdate-sh -objectives.texi -process.pdf -revision.texi -rgdb_specs -rgdb_specs.aux -rgdb_specs.cp -rgdb_specs.dvi -rgdb_specs.fn -rgdb_specs*.html -rgdb_specs.info -rgdb_specs.ky -rgdb_specs.log -rgdb_specs.pdf -rgdb_specs.pg -rgdb_specs.ps -rgdb_specs.toc -rgdb_specs.tp -rgdb_specs.vr -rtems_footer.html -rtems_header.html -seqbreak.pdf -seqdetach.pdf -seqinit.pdf -stamp-vti -version.texi diff --git a/doc/rgdb_specs/Makefile.am b/doc/rgdb_specs/Makefile.am deleted file mode 100644 index e1cee9969a..0000000000 --- a/doc/rgdb_specs/Makefile.am +++ /dev/null @@ -1,80 +0,0 @@ -# -# COPYRIGHT (c) 1988-2002. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT = rgdb_specs -EDITION = 1 - -include $(top_srcdir)/project.am -include $(top_srcdir)/main.am - -GENERATED_FILES = intro.texi revision.texi objectives.texi gdbinternals.texi \ - interfacing.texi comm.texi daemon.texi conclusion.texi -COMMON_FILES += $(top_srcdir)/common/cpright.texi - -FILES = - -info_TEXINFOS = rgdb_specs.texi -rgdb_specs_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) - -JPEG_FILES = layers.jpg process.jpg seqinit.jpg seqbreak.jpg seqdetach.jpg - -PDF_IMAGES = layers.pdf process.pdf seqdetach.pdf seqbreak.pdf seqinit.pdf - -if USE_HTML -html_project_DATA += $(JPEG_FILES) -endif - -# -# Process Automatically Generated Files -# - -intro.texi: intro.t - $(BMENU2) -c -p "Top" \ - -u "Top" \ - -n "Document Revision History" < $< > $@ - -revision.texi: revision.t - $(BMENU2) -c -p "Introduction" \ - -u "Top" \ - -n "Objectives" < $< > $@ - -objectives.texi: objectives.t - $(BMENU2) -c -p "Document Revision History" \ - -u "Top" \ - -n "A Rapid Tour of GDB Internals" < $< > $@ - -gdbinternals.texi: gdbinternals.t - $(BMENU2) -c -p "Implied Restrictions" \ - -u "Top" \ - -n "Interfacing GDB with RTEMS as a Target" < $< > $@ - -interfacing.texi: interfacing.t - $(BMENU2) -c -p "A Rapid Tour of GDB Internals" \ - -u "Top" \ - -n "Communication with GDB" < $< > $@ - -comm.texi: comm.t - $(BMENU2) -c -p "Interfacing GDB with RTEMS as a Target" \ - -u "Top" \ - -n "RTEMS Debugger Server Daemon" < $< > $@ - -daemon.texi: daemon.t - $(BMENU2) -c -p "Communication with GDB" \ - -u "Top" \ - -n "Conclusion" < $< > $@ - -conclusion.texi: conclusion.t - $(BMENU2) -c -p "Output of a Debug Session with the Prototype" \ - -u "Top" \ - -n "" < $< > $@ - -noinst_DATA = layers.eps process.eps seqdetach.eps seqbreak.eps seqinit.eps - -EXTRA_DIST = comm.t conclusion.t daemon.t gdbinternals.t interfacing.t \ - intro.t objectives.t revision.t $(noinst_DATA) $(JPEG_FILES) -CLEANFILES += rgdb_specs.info diff --git a/doc/rgdb_specs/comm.t b/doc/rgdb_specs/comm.t deleted file mode 100644 index 3df3c18645..0000000000 --- a/doc/rgdb_specs/comm.t +++ /dev/null @@ -1,98 +0,0 @@ -@c -@c RTEMS Remote Debugger Server Specifications -@c -@c Written by: Eric Valette -@c Emmanuel Raguet -@c -@c -@c $Id$ -@c - -@chapter Communication with GDB - -The RTEMS remote debugger will be accessed by GDB on a host machine -through a communication link. We will use the TCP/IP stack included in RTEMS -: the FreeBSD stack. The communication link will be based based on the UDP protocol -and the BSD sockets which are parts of the FreeBSD stack. On top of these layers, -we will plug a module which allows a simple communication between different -machines (especially between different endianess machines) : the SUN Remote -Procedure Call (SUN RPC). This code is freely available on the net and comes -with a BSD like license. With this module, a process can invoke a procedure -on a remote system. The RTEMS remote debugger will be seen by GDB as a SUN RPC -server. Commands will be packed by the GDB SUN RPC client and sent to the server. -This server will unpack these commands, execute them and, if needed, return -results to the SUN RPC client. - - -Only a minimal subset of the SUN RPC library must be implemented. -For example, the portmapper related API which allows a dynamic allocation of -port numbers will not be implemented and some specific UDP port numbers will -be used to establish the communication between the host and the target. The -SUN RPC library implements the XDR module (eXternal Data Representation) which -is a standard way of encoding data in a portable fashion between different endian -systems. Below are figures describing the additional code and data size for -the minimal library implementation we currently have already implemented for -RTEMS : - -@example -$ size -x librpc.a -text data bss dec hex filename -0x40e 0x0 0x0 1038 40e rpc_callmsg.o (ex librpc.a) -0x2f1 0x18 0x0 777 309 rpc_prot.o (ex librpc.a) -0x458 0x0 0x0 1112 458 svc.o (ex librpc.a) -0x4f 0x4 0x0 83 53 svc_auth.o (ex librpc.a) -0x75c 0x18 0x0 1908 774 svc_udp.o (ex librpc.a) -0x711 0x4 0x10 1829 725 xdr.o (ex librpc.a) -0x149 0x0 0x0 329 149 xdr_array.o (ex librpc.a) -0x165 0x20 0x0 389 185 xdr_mem.o (ex librpc.a) -@end example - -We have a constraint with the use of the UDP protocol. Because this -protocol is connectionless, it is impossible, especially for the target, to -detect if the connection is always active. On the other hand, using the TCP/IP -protocols seems to be heavy especially if we plan to implement a dedicated micro -stack for debug in the future. It can be a real problem to let the debugged -process stopped during a long time even if there is no more debugger connected -to the system. To avoid such a problem, the target must periodically test the -connection with the host on another way than the one used to receive the commands. -We must therefore open two communication ways so we need two fixed UDP port -numbers. - -@enumerate -@item One port will be used by the debugger to send its commands to the -debugged process and to receive the result of these commands. View from the -remote debugger, this port will be called primary port. For this one, we choose -arbitrarily the port number 2000. -@item The other socket will be used as secondary port by the target to sometimes -test the connection between the host and the target. These tests will occur -in specific situations, when a process will be stopped on a breakpoint, single -step instruction or other means. This secondary port will also be used by the -target to signal any change in the behavior of a debugged process (stopped, -killed, waiting for,...). For the secondary port, we choose the port number -2010. -@end enumerate - -These two port numbers are used by the remote debugger to open the -two communication sockets. GDB will use its own mean to choose its port numbers -(probably the Unix portmapper). The figure layer shows the different -layers we need to implement. - -@c -@c Communications Layers Figure -@c - -@ifclear use-html -@image{layers,,6in,"Communications Layers"} -@end ifclear - - -@ifset use-html -@c Communications Layers -@html -Communications Layers -@end html -@end ifset - - - - diff --git a/doc/rgdb_specs/conclusion.t b/doc/rgdb_specs/conclusion.t deleted file mode 100644 index abc6137966..0000000000 --- a/doc/rgdb_specs/conclusion.t +++ /dev/null @@ -1,33 +0,0 @@ -@c -@c RTEMS Remote Debugger Server Specifications -@c -@c Written by: Eric Valette -@c Emmanuel Raguet -@c -@c -@c $Id$ -@c - -@chapter Conclusion - -In this document we have presented how we envisage to add remote debugging facilities -to RTEMS by implementing a remote debugger daemon for GDB. As any debug implemented -in software, it will have limitation but we are confident that most of them -can be removed by adding separate software components dedicated to debug activity. -We must keep in mind that even with this approach, no software will enable the -debug of code with interrupt entirely masked at processor level and that In -Circuit Emulator (ICE) or use of BDM extension on the target board are the ultimate -way to really debug any portion of an RTOS. BDM support in GDB is still weak -but people are working on it and we may get something better in a near future. - -@ifclear use-html -@image{process,6in,,"Remote debugger tasks and handlers"} -@end ifclear - -@ifset use-html -@c Remote debugger tasks and handlers -@html -Remote debugger tasks and handlers -@end html -@end ifset - diff --git a/doc/rgdb_specs/daemon.t b/doc/rgdb_specs/daemon.t deleted file mode 100644 index 61d4762cd2..0000000000 --- a/doc/rgdb_specs/daemon.t +++ /dev/null @@ -1,437 +0,0 @@ -@c -@c RTEMS Remote Debugger Server Specifications -@c -@c Written by: Eric Valette -@c Emmanuel Raguet -@c -@c -@c $Id$ -@c - -@chapter RTEMS Debugger Server Daemon - -We will describe in this section how this debugger server will be -implemented on RTEMS environment. Our initial target is based on Intel Pentium -and we will use an Ethernet link to communicate between the host and the target. - -The RTEMS remote debugger will be composed by several tasks and exception -handlers : - -@itemize @bullet -@item an initialization task which opens the sockets and runs the SUN RPC -server. This task will also connect the interrupt handlers and launch the communication -task -@item a communication task which receives the SUN RPC commands, executes -them and sends the result to the GDB client, -@item A debuggee event management task which waits for events. We need a different -task than the command management task in order to be able to still accept commands -while no event has yet occurred for the debuggee. An example could be a continue -command from GDB and then hitting to DEL key to see what is currently going -on on the target side because an expected breakpoint is not caught... -@item a debug exception handler which manages the hardware breakpoint and -single step exceptions (INT 1 on Intel x86), -@item a breakpoint exception handler which manages the software breakpoints -exceptions (INT 3 on Intel x86), -@item a default exception handler used to catch every possible errors make on the -target system, -@end itemize - -@c XXX figure reference -@c XXX references to other sections -Figure @b{remote debugger tasks and handlers} represents these -different tasks and handlers. The synchronization between the different task -and exception handlers will be described below in the section -@b{Synchronization Among Tasks and Exception Handlers}. -Some open issues we have faced for a prototype implementation are described -in the section @b{Open Issues}. The temporary workaround we chose are described -in chapter @b{Workarounds for Open Issues in Prototype}. - - -@section The INITIALIZATION task - -This is the task that must be executed at the boot phase of RTEMS. -It initializes the debug context. It must : - -@itemize @bullet -@item open the UDP sockets, -@item run the SUN RPC server main loop, -@item create the COMMAND MANAGEMENT task, -@item connect the DEBUG EXCEPTION handler, -@item connect the SOFTWARE BREAKPOINT handler, -@item delete itself. -@end itemize -If an error occurs at any step of the execution, the connections established -before the error will be closed, before the initialization task deletes itself. - - -@section The COMMAND_MNGT task - -This task is in charge of receiving the SUN RPC messages and executing -the associated commands. This task must have an important priority because it -must be executed each time a command message comes from the debugger. It must -be executed even if one or both exception handlers are executed. But the COMMAND -MANAGEMENT task must not block the TCP/IP module without which no message can -be received. - -When not executing a command, this task is waiting for a SUN RPC message -on the primary port. This idle state blocks the task, so the other active tasks -can run. Once a message comes from Ethernet via the primary port, the COMMAND -MANAGEMENT task wakes up and receives the message which is a request from GDB. -This request is sent to the SUN RPC server code which extracts the command and -its arguments, executes it and, if needed, sends a result to GDB. After having -performed these actions, the task sleeps, waiting for another message. - -A particular case is the reception of the ATTACH command : in this -case the COMMAND_MNGT task creates the EVENT_MNGT task described below before -going to wait on UDP socket again. - - -@section The EVENT_MNGT task - -This task is in charge of managing events happening on the debuggee such as -breakpoint, exceptions. This task does a basic simple loop waiting for event -on a synchronization variable. It is waken up by exception handlers code. It -then signals GDB that an event occurred and then go sleeping again as further -requests will be processed by the COMMAND_MNGT task. - - -@section The DEBUG EXCEPTION handler - -This handler is connected to the DEBUG exception (INT 1 on Intel ix86). -This exception is entered when : - -@itemize @bullet -@item executing a single-step instruction, -@item hardware breakpoint condition is true, -@end itemize -These events will be treated by the debugger because they are the -primary event used when debugging a software for instruction stepping. In both -cases, the DEBUG EXCEPTION handler code is executed. Please note that the execution -context of the exception handler is the supervisor stack of the task that generated -the exception. This implies: - -@itemize @bullet -@item We may sleep in this context, -@item We have as many possible execution context for the DEBUG EXCEPTION handler as -we need to, -@item When we enter the high level exception handler code, a normalized exception -context has been pushed on the system stack and a pointer to this context is -available as the first argument (cf cpukit/score/cpu/i386/cpu.c for more -details), -@end itemize -First the exception handler wakeup the EVENT_MNGT task. Then it will -cause the faulting thread to sleep on a synchronization object. As soon as GDB -receives the event notifying that the debuggee status has changed, it will start -sending requests to get the debuggee status (registers set, faulty task id, -...). These requests are handled by the COMMAND MANAGEMENT task. When this task -receive a PTRACE_CONT command it will resume the execution of the task that -caused the exception by doing a V on the synchronization object. - - -@section The BREAKPOINT EXCEPTION handler - -This handler is connected to the BREAKPOINT exception (INT3 on Intel -Ix86). Each time the debugger wants to place a software breakpoint in the debuggee, -a debuggee opcode is temporarily replaced by an instruction causing BREAKPOINT -exception (the ``INT 3'' instruction on Intel ix86). When ``INT 3'' is executed, -the BREAKPOINT handler is executed. Otherwise, the exception processing is the -same than the one described in previous section. - - -@section Synchronization Among Tasks and Exception Handlers - -The previous chapters have presented a simplified and static view of the various -tasks and exceptions handlers. This chapter is more focussed on synchronization -requirements about the various pieces of code executed when RGDBSD is operating. - - -@subsection Implicit Synchronization Using Task Priorities - -This chapter is relevant on Uniprocessor System (UP) only. However, it will -also list the requirements for explicit synchronization on Multi-processor Systems -(MP). Below are the task priorities sorted by high priority. They are not supposed -to be equal : - -@enumerate -@item Network Input Task. This is the highest priority task. This can be regarded -as a software interrupt task for FreeBSD code, -@item RGDBSD command task. As this task waits on UDP sockets, it shall not prevent -the previous task from running. As the main debug entry point, it should preempt -any other task in the system, -@item RGDBSD event task. This task should preempt any task but the two mentionned -before to signal a debug event to GDB. The command task shall be able to preempt -this task for emergency command such as DEL, or REBOOT, -@item Applications tasks (task we are able to debug), -@end enumerate - -Using theses priorities eliminates the need for adding more synchronization -objects in the next section. My belief is that symmetric MP support will require -more important change in the RTEMS than RGDBSD itself like multiple scheduler -queues, task to processor binding for non symmetric IO, use a different implementation -for @emph{task_disable_preemption}, ... - - -@subsection Explicit Synchronization - -This chapter will describe the synchronization variables that need to be implemented -in order to sequence debug events in a way that is compatible with what GDB -code expects. The root of the problem is that GDB code mainly expects that once -a debug event has occurred on the debuggee, the entire debuggee is frozen and -no other event will occur before the CONTINUE command is issued. This behavior -is hard to achieve in our case as once we hit a breakpoint, only the task that -hits the breakpoint will be asleep on a synchronization object. Other tasks -may hit other breakpoints while we are waiting commands from GDB generating -potential unexpected events. There is a solutions if RGDBSD itself use RTEMS -threads to fix this problem by creating a task that loops forever at a priority -superior to any debugged task but below RGDBSD task priorities. Unfortunately -this will not work for the case we use the nano-kernel implementation and we -think it is better to study synchronization problems now. We also expects that -multi-thread debug support hardening in GDB will remove some event serializations -requirements. Here is the list of synchronization variables we plan to use and -their usage. They are all regular semaphores. They are not binary semaphores -because the task that does V is not the task that has done the P. - -@itemize @bullet -@item @emph{WakeUpEventTask} : used by exception handler code to wake up the EVENT_MNGT -task by doing a V operation on this object. When target code is running normally -the EVENT_MNGT task sleeps due to a P operation on this semaphore, -@item @emph{SerializeDebugEvent} : used to serialize events in a way compatible to -what GDB expects. Before doing a V operation on @emph{WakeUpEventTask}, the -exception handler does a P on this semaphore to be sure processing of another -exception is not in progress. Upon reception of a CONTINUE command, the COMMAND_MNGT -task will issue a V operation so that the exception code can wake up EVENT_MNGT -task using the mechanism described above, -@item @emph{RestartFromException} : (in fact one semaphore per task) used by exception -handling code to put a faulty task to sleep once it has generated an exception -by doing a P operation on this semaphore. In the case the exception was generated -due to a breakpoint, GDB command will modify back the BREAKPOINT opcode to the -original value before doing the CONTINUE command. This command will perform -a V on this semaphore. In the case it is a real non restartable exception (faulty -memory reference via invalid pointer for example), GDB will not allow to restart -the program avoiding any loop. So not special analysis of cause of exception -is foreseen as far as RGDBSD code is concerned, -@end itemize - -@section Open Issues - -Here are some problems we have faced while implementing our prototype : - -@table @b -@item [Protected ReadMem/WriteMem (I1)]: -A GDB user can request to see the content -of a corrupted pointer. The request PEEK_DATA will be performed by the COMMAND_MNGT -task. It shall not enter the default exception handler set by RGDBSD or it will -cause a dead lock in the RGDBSD code. Replacing the default exception vector -before calling @b{readMem/writeMem} can be temporarily sufficient but : - -@itemize @bullet -@item It will never work on MP system as it will rely on task priorities to insure -that other task will not cause exceptions while we have removed the default -exception handler, - -@item This feature should not be usable in RGDBSD only but also by an embedded debugger -that may run without any task. It is also unavoidable in case of protected memory -and in this case no priority mechanism can be used, - -@item In the case of using RGDBSD code on a dedicated nano kernel, this code will -be called from interrupt level and we need a way to be sure we can debug other -interrupts that may also cause exceptions, -@end itemize - -@item [ATTACH Command Implementation (I2)]: -After the @emph{target rtems symbolic_ip_target_name} -command, the normal operation is to issue an @emph{attach lid} command where -@emph{lid} represents a valid execution context. For Unix this is a process -id, for other multi-tasking system this is the id of a thread. After the attach -command, GDB expects to be waken up in the same manner as it is for normal events. -Once waken up it expects to have a complete register context available and also -that the target task is in a stopped state and that it can restart it using -the regular CONTINUE command. In RTEMS there is a way to get force a thread -to become inactive via @emph{rtems_task_suspend} but no way to get the full -registers set for the thread. A partial context can be retrieved from the task -@emph{Registers} data structure. On the other hand, relying on @emph{rtems_task_suspend} -will be a problem for the nano-kernel implementation. - -@item [Stopping Target System (I3)]: -Allthough it might not be obvious, most of the -actions made by a GDB user assume the target is not running. If you modify a -variable via the @emph{set variable = value} command you expect that the value -is the one you have put when restarting. If a still running task modifies the -same value in the mean time, this may be false. On the other hand, stopping -all the tasks on the target system impose to have a very deep knowledge of the -system. Using an interrupt driven RGDBSD, may facilitate the implementation -on the nano-kernel. - -@item [Getting Tasks Contexts (I4)]: -As previously mentionned there is no way to get -tasks execution contexts via the RTEMS API. This is needed when debugging for -example via this classical sequence : - -@enumerate - -@item @emph{(gdb) target rtems symbolic_ip_target_name} - -@item @emph{(gdb) info threads <=} get a thread list on screen - -@item @emph{(gdb)} @emph{attach thread_id} <= thread_id is one of the thread in -the list - -@item @emph{(gdb) b a_function_of_interest } - -@item @emph{(gdb) continue} - -@item @emph{(gdb)} @emph{backtrace} <= print the call stack on the screen once we -have hit the breakpoint - -@item @emph{(gdb) thread target another_thread_li <=} change implicit current thread -value for gdb commands - -@item @emph{(gdb)} @emph{backtrace <=} should print the backtrace for the chosen thread -@end enumerate -In our execution model, we have a valid context only for the threads that hits -the breakpoint as it has been pushed by the exception handler code. The other -thread is still running and during the various RPC requesting memory access, -it even changes as the COMMAND_MNGT thread is going to sleep. So the backtrace -command will fail. We must find a way to make this work as it is very usefull -when debugging multi-threaded programs, - - -@item [Backtrace Stop convention (I5)]: -The backtrace command on RTEMS task does not -gracefully terminate as GDB does not find some backtrace termination condition -it expects. -@end table - -@section Workarounds for Open Issues in Prototype - -@table @b - -@item [(I1)]: -Not implemented.We would rather like to work on the formalization of -per thread flags and global flags that are much more general than any kludge -we could implement, - -@item [(I2)]: -We have tried two solutions in our prototype. The first one was to use -the @emph{idle} thread context contained in the @emph{Registers} task control -block field. The drawback of this solution was that we had to implement specific -code for the continue operation immediately following the attach command. We -then decided to create a dedicated task that will only exist during the attach -phase. This task will call the ``ENTER_RGDB'' exception. This call will execute -the Exception Handler that saves a valid context and that notifies a change -to GDB. After the first CONTINUE command from GDB, this task will continue its -execution and delete itself, - -@item [(I3)]: -As explained above in the synchronization chapter, we choose to serialize -events in a way that makes GDB think the system is frozen, - -@item [(I4)]: -As a temporary fix, we have called @emph{rtems_task_suspend} and used -the context switch contex for tasks that are unknown to RGDBSD, - -@item [(I5)]: -Not Implemented yet. If I remember correctly, setting the frame pointer -to 0 at task initialization for CISC processor solves this problem (ebp = 0x0 -on Intel or a6 = 0x0 on 680x0). This should be done in rtems_task_create function -in the path to really starts the task for the first time. The processor/system -specific stop condition can be found as macros in the GDB source tree. -@end table - -@section Output of a Debug Session with the Prototype - -This is a sample session with the remote debugging prototype. Note that -some lines have been broken so they would print properly when printed. - -@example -GNU gdb 4.17 -Copyright 1998 Free Software Foundation, Inc. -GDB is free software, covered by the GNU General Public License, -and you are welcome to change it and/or distribute copies of it -under certain conditions. Type "show copying" to see the conditions. -There is absolutely no warranty for GDB. -Type "show warranty" for details. -This GDB was configured as --host=i686-pc-linux-gnu --target=i386-rtems. -Attaching remote machine across net... -Connected to net-test. -Now the "run" command will start a remote process. -Setting up the environment for debugging gdb. -(gdb) attach 1 -Attaching program: /build-rtems/pc386/tests/debug.exe pid 1 -0x230715 in enterRdbg () -(gdb) info threads -There are 8 threads: -Id. Name Detached Suspended -134283273 Rini No No <= current target thread -0x230715 in enterRdbg () -134283272 Evnt No No -_Thread_Dispatch () at /rtems/cpukit/score/src/thread.c:315 -134283271 SPE2 No No -_Thread_Dispatch () at /rtems/cpukit/score/src/thread.c:315 -134283270 SPE1 No No -_Thread_Handler () at /rtems/cpukit/score/src/thread.c:1107 -134283269 RDBG No No -0x230715 in enterRdbg () -134283268 SCrx No No -_Thread_Dispatch () at /rtems/cpukit/score/src/thread.c:315 -134283267 SCtx No No -_Thread_Dispatch () at /rtems/cpukit/score/src/thread.c:315 -134283266 ntwk No No -_Thread_Dispatch () at /rtems/cpukit/score/src/thread.c:315 -(gdb) b init.c:89 -Breakpoint 1 at 0x200180: file \ - /rtems/c/src/tests/samples/debug/init.c, line 89. -(gdb) c -Continuing. -Thread 134283273 (Rini) has been deleted. -[Switching to Rtems thread 134283271 (Not suspended) \ - ( <= current target thread )] -Breakpoint 1, example2 (argument=4) at \ - /rtems/c/src/tests/samples/debug/init.c:89 -89 tuto += tuti; -(gdb) s -90 if (print_enable2) -(gdb) c -Continuing. -Breakpoint 1, example2 (argument=4) at \ - /rtems/c/src/tests/samples/debug/init.c:89 -89 tuto += tuti; -(gdb) b init.c:66 -Breakpoint 2 at 0x200128: file \ - /rtems/c/src/tests/samples/debug/init.c, line 66. -(gdb) c -Continuing. -Switching to Rtems thread 134283270 (Not suspended) \ - ( <= current target thread )] -Breakpoint 2, example1 (argument=4) at \ - /rtems/c/src/tests/samples/debug/init.c:66 -66 toto += titi; -(gdb) c -Continuing. -[Switching to Rtems thread 134283271 (Not suspended) \ - ( <= current target thread )] -Breakpoint 1, example2 (argument=4) at \ - /rtems/c/src/tests/samples/debug/init.c:89 -89 tuto += tuti; -(gdb) bt -#0 example2 (argument=4) - at /rtems/c/src/tests/samples/debug/init.c:89 -#1 0xf0009bd0 in ?? () -(gdb) thread target 134283270 -thread 134283270 [SPE1], _Thread_Dispatch () at \ - /rtems/cpukit/score/src/thread.c:315 -315 executing = _Thread_Executing; -(gdb) c -Continuing. -Breakpoint 2, example1 (argument=4) at \ - /rtems/c/src/tests/samples/debug/init.c:66 -66 toto += titi; -(gdb) detach -Detaching program: /build-rtems/pc386/tests/debug.exe pid 1 -Warning: the next command will be done localy! \ - If you want to restart another remote -program, reuse the target command -(gdb) -@end example - - diff --git a/doc/rgdb_specs/gdbinternals.t b/doc/rgdb_specs/gdbinternals.t deleted file mode 100644 index afb1f39aee..0000000000 --- a/doc/rgdb_specs/gdbinternals.t +++ /dev/null @@ -1,254 +0,0 @@ -@c -@c RTEMS Remote Debugger Server Specifications -@c -@c Written by: Eric Valette -@c Emmanuel Raguet -@c -@c -@c $Id$ -@c - -@chapter A Rapid Tour of GDB Internals - -To help the reader to understand what needs to be implemented, we -will present briefly how GDB works regardless if the target is local or remote. -A debugger is a tool which enables control of the execution of software on a -target system. In most of cases, the debugger connects to a target system, attaches -a process, inserts breakpoints and resumes execution. Then the normal execution -is completely events driven (process execution stopped due to a breakpoint, -process fault, single-step,...) coming from the debuggee. It can also directly -access some parts of the target processor context (registers, data memory, code -memory,...) and change their content. Native GDB debugger can just be seen as -special cases where the host and the target are on the same machine and GDB -can directly access the target system debug API. - - -In our case, the host and the target are not on the same machine and -an Ethernet link is used to communicate between the different machines. Because -GDB needs to be able to support various targets (including Unix core file, ...), -each action that needs to be performed on the debuggee is materialized by a -field of the following @emph{targets_op}s structure : - -@example -struct target_ops -@{ - char *to_shortname; /* Name this target type */ - char *to_longname; /* Name for printing */ - char *to_doc; /* Documentation. Does not include trailing - newline, and starts with a one-line - description (probably similar to - to_longname). */ - void (*to_open) PARAMS ((char *, int)); - void (*to_close) PARAMS ((int)); - void (*to_attach) PARAMS ((char *, int)); - void (*to_detach) PARAMS ((char *, int)); - void (*to_resume) PARAMS ((int, int, enum target_signal)); - int (*to_wait) PARAMS ((int, struct target_waitstatus *)); - void (*to_fetch_registers) PARAMS ((int)); - void (*to_store_registers) PARAMS ((int)); - void (*to_prepare_to_store) PARAMS ((void)); - - /* Transfer LEN bytes of memory between GDB address MYADDR and - target address MEMADDR. If WRITE, transfer them to the target, - else transfer them from the target. TARGET is the target from - which we get this function. - - Return value, N, is one of the following: - - 0 means that we can't handle this. If errno has been set, - it is the error which prevented us from doing it (FIXME: - What about bfd_error?). - - positive (call it N) means that we have transferred N bytes - starting at MEMADDR. We might be able to handle more bytes - beyond this length, but no promises. - - negative (call its absolute value N) means that we cannot - transfer right at MEMADDR, but we could transfer at least - something at MEMADDR + N. */ - - int (*to_xfer_memory) - PARAMS ((CORE_ADDR memaddr, char *myaddr, - int len, int write, - struct target_ops * target)); - - void (*to_files_info) PARAMS ((struct target_ops *)); - int (*to_insert_breakpoint) PARAMS ((CORE_ADDR, char *)); - int (*to_remove_breakpoint) PARAMS ((CORE_ADDR, char *)); - void (*to_terminal_init) PARAMS ((void)); - void (*to_terminal_inferior) PARAMS ((void)); - void (*to_terminal_ours_for_output) PARAMS ((void)); - void (*to_terminal_ours) PARAMS ((void)); - void (*to_terminal_info) PARAMS ((char *, int)); - void (*to_kill) PARAMS ((void)); - void (*to_load) PARAMS ((char *, int)); - int (*to_lookup_symbol) PARAMS ((char *, CORE_ADDR *)); - void (*to_create_inferior) PARAMS ((char *, char *, char **)); - void (*to_mourn_inferior) PARAMS ((void)); - int (*to_can_run) PARAMS ((void)); - void (*to_notice_signals) PARAMS ((int pid)); - int (*to_thread_alive) PARAMS ((int pid)); - void (*to_stop) PARAMS ((void)); - enum strata to_stratum; - struct target_ops - *DONT_USE; /* formerly to_next */ - int to_has_all_memory; - int to_has_memory; - int to_has_stack; - int to_has_registers; - int to_has_execution; - struct section_table - *to_sections; - struct section_table - *to_sections_end; - int to_magic; - /* Need sub-structure for target machine related rather than comm related? */ -@}; -@end example - -This structure contains pointers to functions (in C++, this would -be called a virtual class). Each different target supported by GDB has its own -structure with the relevant implementation of the functions (some functions -may be not implemented). When a user connects GDB to a target via the ``target'' -command, GDB points to the structure corresponding to this target. Then the -user can attache GDB to a specific task via the ``attach'' command. We have -therefore identified two steps to begin a remote debug session : - -@enumerate -@item the choice of the target type (in our case RTEMS), -@item the choice of what to debug (entire system, specific task,...), -@end enumerate -Note that in the case of natives debugger, the choice of the target is implicitly -performed by commands like @b{run}, @b{attach}, @b{detach}. Several -figures will now be described showing the main steps of a debug session. - -@c XXX figure reference -Figure @b{Debug session initialization} explains how the debugger connects to the target -: - -@enumerate -@item The debugger opens a connection to the target. The word ``connection'' -doesn't only mean Ethernet or serial link connection but all the ways by which -a process can communicate with another one (direct function call, messages mailbox, -...), -@item The targets checks if it can accept or reject this connection, -@item If the connection is accepted, the host ``attaches'' the process, -@item the target stops the process, notifies a child's stop to the host -and waits for command, -@item the host can ask information about the debugged process (name, registers,...) -or perform some action like setting breakpoints, ... -@end enumerate - -@c XXX figure reference -Figure @b{Breakpoint and process execution} explains how the debugger manages the -breakpoints and controls the execution of a process : - -@enumerate -@item The host asks the debuggee what is the opcode at the concerned address -in order for GDB to memorize this instruction, -@item the host sends a CONTINUE command : it asks the target to write the -``DEBUG'' opcode (for example, the INTEL ``DEBUG'' opcode is INT3 which -generate a breakpoint trap) instead of the debugged opcode. -@item then the host waits for events, -@item after the change of instruction, the target resumes the execution -of the debuggee, -@item when the ``DEBUG'' opcode is executed, the breakpoint exception -handler is executed and it notifies the host that the process is stopped. Then -it waits for commands (if no command is sent after a certain amount of time, -the connection will be closed by the target). -@item the host asks the target to re-write the right opcode instead of the -''DEBUG'' opcode and then can ask information -@end enumerate - -@c XXX figure reference -Figure @b{Breakpoint and process execution} also shows the case of other ``CONTINUE'' -commands (remember that the ``DEBUG'' opcode has been replaced by the right -instruction): - -@enumerate -@item Host sends first a ``single step'' command to execute the debugged -instruction, -@item It then waits for ``single step`` exception event, -@item the target, once the single step executed, calls the debug exception -handler. It notifies the host that execution is suspended and wait for commands. -@item the host asks the target to re-write the ``DEBUG'' opcode (breakpoint -trap) instead of the debugged one. -@item then the host sends a ``CONTINUE'' command in order the target to -resume the process execution to the next breakpoint. -@end enumerate - -@c XXX figure reference -Figure @b{Detach a process and close a connection} explains how the debugger disconnects from -a target : - -@enumerate -@item the host sends a detach command to the target. -@item the target detaches the concerned process, notifies the detachment -and resumes the process execution. -@item once notified, the host sends a close connection command. -@item the target closes the connection. -@end enumerate -These 3 examples show that the mains actions that are performed by -the host debugger on the target are only simple actions which look like : - -@itemize @bullet -@item read/write code, -@item read/write data, -@item read/write registers, -@item manage exceptions, -@item send/receive messages to/from the host. -@end itemize - - -@c -@c Debug session initialization Figure -@c - -@ifclear use-html -@image{seqinit,,,"Debug session initialization"} -@end ifclear - - -@ifset use-html -@c Debug session initialization -@html -Debug session initialization -@end html -@end ifset - - -@c -@c Breakpoint and process execution Figure -@c - -@ifclear use-html -@image{seqbreak,,9in,"Caption Breakpoint and process execution"} -@end ifclear - -@ifset use-html -@c Breakpoint and process execution -@html -Breakpoint and process execution -@end html -@end ifset - - - -@c -@c Detach a process and close a connection Figure -@c - -@ifclear use-html -@image{seqdetach,,,"Detach a process and close a connection"} -@end ifclear - -@ifset use-html -@c Detach a process and close a connection -@html -Detach a process and close a connection -@end html -@end ifset - - - - diff --git a/doc/rgdb_specs/interfacing.t b/doc/rgdb_specs/interfacing.t deleted file mode 100644 index f10ccdf5e0..0000000000 --- a/doc/rgdb_specs/interfacing.t +++ /dev/null @@ -1,79 +0,0 @@ -@c -@c RTEMS Remote Debugger Server Specifications -@c -@c Written by: Eric Valette -@c Emmanuel Raguet -@c -@c -@c $Id$ -@c - -@chapter Interfacing GDB with RTEMS as a Target - -@c XXX figure reference -So, basically, porting GDB to RTEMS environment requires implementing -the functions contained in the target_ops structure. The native debugger implementation -(where the host machine is also the target one) uses direct function calls. -For our needs (remote debugging), these functions must be implemented to support -the encapsulation in UDP/IP layers and communications between different types -of host machines : the best solution is use the SUN Remote Procedure Calls API -(SUN RPC). This SUN RPC module will be explained below (see paragraph @b{Communication with GDB}). - -We can note that the functions described in the target_ops structure -are high-level functions. The main reason is that GDB was designed in order -to be able to use monitor firmware as a debug server. In the case of a Unix -OS target, these high-level functions are implemented themselves using a lower -level POSIX API. Because we want to simplify the code running on the target -and decrease its size of this code, we propose to use the POSIX layer API used -for the debug like @b{waitpid}, @b{ptrace}, ... Due to the GDB working -mode and due to our requirements, we can establish here a non-exhaustive list -of some commands required to implement the previously described functions : - -@itemize @bullet -@item set up a connection with a target, -@item close a connection, -@item send a signal to the specified process, -@item get a list of process/thread/connection running, -@item control process under debug, -@item ... -@end itemize -Control means that, with this function, we can read, write the memory -of the debuggee, insert breakpoint to stop the process and resume the process -execution. This command can be implemented by emulating in the RTEMS environment -a Unix function called ``ptrace''. This function allows the control of a child -process. The ``ptrace'' function has some sub-functions which are described -below (some of these actions and standardized, the others are added due to our -needs) : - -@itemize @bullet -@item PTRACE_PEEKTEXT, PTRACE_PEEKDATA : read word at address, -@item PTRACE_POKETEXT, PTRACE_POKEDATA :write word at address, -@item PTRACE_CONT : restart after signal, -@item PTRACE_KILL : send the child a SIGKILL to make it exit, -@item PTRACE_SINGLESTEP : set the trap flag for single stepping, -@item PTRACE_ATTACH : attach to the process specified, -@item PTRACE_DETACH : detach a process that was previously attached. -@end itemize -This list only contains the command that are described in the ptrace -Unix manpage. For some specific needs (debug of one task among several ones, -register read/write,...), it is possible to create some special ptrace commands -as described after : - -@itemize @bullet -@item get current task registers, -@item set current task registers, -@item list of the threads, -@item identifier of the target thread, -@item restart to address, -@item set breakpoint at address, -@item clear breakpoint, -@item get breakpoints, -@item load dynamically a task, -@item ... -@end itemize -This list is not exhaustive and can be increased due to the needs. -All the described functions will not be implemented in a first version, only -the strictly needed. If some commands are added, the modifications must be implemented -both in RTEMS and in GDB. - - diff --git a/doc/rgdb_specs/intro.t b/doc/rgdb_specs/intro.t deleted file mode 100644 index 5490eefa51..0000000000 --- a/doc/rgdb_specs/intro.t +++ /dev/null @@ -1,39 +0,0 @@ -@c -@c RTEMS Remote Debugger Server Specifications -@c -@c Written by: Eric Valette -@c Emmanuel Raguet -@c -@c -@c $Id$ -@c - -@chapter Introduction - -The TOOLS project aims to provide a complete development environment -for RTEMS OS. This environment must be as close as possible to the Chorus one -(gnu compiler, gnu linker, gnu debugger, ...), because it is currently the OS -which is the most used at CRF and we want to simplify the migration path from -the ChorusOs environment to the RTEMS environment. One important item of this -development environment is the remote debugger which allows the developer to -debug his software on a target machine from a host machine via a communication -link (Ethernet, serial link, ...). - - -The choice of GDB as debugger has been made with because in CRF, every -developer, which uses the ChorusOs development environment, debugs his software -using the remote debugging functionality of GDB. Providing a remote GDB debug -server running on RTEMS, will enable the developers to use transparently the -same debugger for a different RTOS. Another reason for the choice of GDB is -its constant evolution, and that it can be interfaced with graphic user interfaces -like DDD providing a very powerfull debugging environment. - - -The subject of this document is to explain how GDB works and the way -to implement a daemon on RTEMS that will be used as a debugger server for a -GDB client. We will call this daemon Rtems GDB Debug Server Daemon (RGDBSD). -We aim to provide this debugger running at least on 2 host systems : Linux 2.x -and Solaris 2.5.1 as they are the two platforms used for developing Chorus applications -today. - - diff --git a/doc/rgdb_specs/layers.eps b/doc/rgdb_specs/layers.eps deleted file mode 100644 index e3427f67eb..0000000000 --- a/doc/rgdb_specs/layers.eps +++ /dev/null @@ -1,359 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: layers.eps -%%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 -%%CreationDate: Mon Oct 5 16:01:44 1998 -%%For: raguet@genesis (Emmanuel Raguet) -%%Orientation: Portrait -%%BoundingBox: 0 0 445 609 -%%Pages: 0 -%%BeginSetup -%%EndSetup -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save --51.0 635.0 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog - -$F2psBegin -10 setmiterlimit -n -1000 11576 m -1000 -1000 l 9251 -1000 l 9251 11576 l cp clip - 0.06000 0.06000 sc -% Polyline -7.500 slw - [60] 0 sd -gs clippath -4530 2904 m 4500 3048 l 4470 2904 l 4470 3090 l 4530 3090 l cp -clip -n 5325 2100 m 5324 2101 l 5321 2104 l 5313 2111 l 5302 2121 l 5290 2133 l - 5278 2143 l 5267 2153 l 5257 2161 l 5248 2168 l 5238 2175 l - 5229 2181 l 5219 2187 l 5209 2193 l 5198 2199 l 5186 2205 l - 5173 2211 l 5161 2216 l 5148 2222 l 5135 2227 l 5123 2231 l - 5112 2234 l 5100 2238 l 5088 2240 l 5077 2242 l 5064 2244 l - 5051 2246 l 5037 2247 l 5023 2248 l 5009 2249 l 4994 2249 l - 4980 2250 l 4966 2250 l 4952 2250 l 4938 2250 l 4923 2250 l - 4908 2250 l 4891 2250 l 4874 2250 l 4857 2250 l 4839 2250 l - 4822 2250 l 4805 2250 l 4790 2250 l 4775 2250 l 4762 2250 l - 4750 2250 l 4737 2250 l 4724 2250 l 4712 2250 l 4701 2251 l - 4689 2252 l 4678 2253 l 4668 2255 l 4658 2257 l 4648 2259 l - 4638 2263 l 4627 2266 l 4615 2271 l 4603 2277 l 4590 2283 l - 4577 2291 l 4564 2299 l 4552 2308 l 4542 2318 l 4533 2327 l - 4525 2338 l 4520 2345 l 4516 2353 l 4513 2363 l 4510 2373 l - 4507 2385 l 4505 2398 l 4503 2412 l 4502 2428 l 4501 2445 l - 4501 2464 l 4500 2483 l 4500 2504 l 4500 2526 l 4500 2550 l - 4500 2566 l 4500 2583 l 4500 2602 l 4500 2622 l 4500 2644 l - 4500 2668 l 4500 2695 l 4500 2724 l 4500 2756 l 4500 2790 l - 4500 2826 l 4500 2864 l 4500 2903 l 4500 2940 l 4500 2975 l - 4500 3006 l 4500 3032 l 4500 3075 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 4530 2904 m 4500 3048 l 4470 2904 l 4500 2928 l 4530 2904 l cp gs 0.00 setgray ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -6180 2904 m 6150 3048 l 6120 2904 l 6120 3090 l 6180 3090 l cp -clip -n 5325 2100 m 5326 2101 l 5329 2104 l 5337 2111 l 5348 2121 l 5360 2133 l - 5372 2143 l 5383 2153 l 5393 2161 l 5402 2168 l 5413 2175 l - 5421 2181 l 5431 2187 l 5441 2193 l 5452 2199 l 5464 2205 l - 5477 2211 l 5489 2216 l 5502 2222 l 5515 2227 l 5527 2231 l - 5538 2234 l 5550 2238 l 5562 2240 l 5573 2242 l 5586 2244 l - 5599 2246 l 5613 2247 l 5627 2248 l 5641 2249 l 5656 2249 l - 5670 2250 l 5684 2250 l 5698 2250 l 5713 2250 l 5727 2250 l - 5742 2250 l 5759 2250 l 5776 2250 l 5793 2250 l 5811 2250 l - 5828 2250 l 5845 2250 l 5860 2250 l 5875 2250 l 5888 2250 l - 5900 2250 l 5913 2250 l 5926 2250 l 5938 2250 l 5949 2251 l - 5961 2252 l 5972 2253 l 5982 2255 l 5992 2257 l 6002 2259 l - 6013 2263 l 6023 2266 l 6035 2271 l 6047 2277 l 6060 2283 l - 6073 2291 l 6086 2299 l 6098 2308 l 6108 2318 l 6117 2327 l - 6125 2338 l 6130 2345 l 6134 2353 l 6137 2363 l 6140 2373 l - 6143 2385 l 6145 2398 l 6147 2412 l 6148 2428 l 6149 2445 l - 6149 2464 l 6150 2483 l 6150 2504 l 6150 2526 l 6150 2550 l - 6150 2566 l 6150 2583 l 6150 2602 l 6150 2622 l 6150 2644 l - 6150 2668 l 6150 2695 l 6150 2724 l 6150 2756 l 6150 2790 l - 6150 2826 l 6150 2864 l 6150 2903 l 6150 2940 l 6150 2975 l - 6150 3006 l 6150 3032 l 6150 3075 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 6180 2904 m 6150 3048 l 6120 2904 l 6150 2928 l 6180 2904 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 2614 5738 m 2615 5737 l 2619 5734 l 2628 5727 l 2642 5715 l 2659 5700 l - 2676 5685 l 2693 5670 l 2707 5656 l 2719 5644 l 2730 5632 l - 2738 5620 l 2746 5609 l 2752 5599 l 2758 5588 l 2763 5576 l - 2769 5563 l 2774 5550 l 2779 5535 l 2783 5520 l 2787 5504 l - 2791 5487 l 2795 5470 l 2798 5453 l 2801 5436 l 2804 5418 l - 2807 5400 l 2809 5385 l 2811 5370 l 2814 5353 l 2816 5336 l - 2818 5318 l 2821 5299 l 2823 5279 l 2825 5259 l 2828 5238 l - 2830 5217 l 2832 5196 l 2834 5174 l 2836 5153 l 2837 5133 l - 2839 5112 l 2840 5092 l 2842 5073 l 2843 5054 l 2844 5036 l - 2845 5019 l 2845 5001 l 2846 4982 l 2847 4963 l 2847 4944 l - 2848 4924 l 2848 4903 l 2849 4882 l 2849 4860 l 2849 4838 l - 2849 4816 l 2850 4794 l 2850 4773 l 2850 4751 l 2850 4729 l - 2850 4708 l 2850 4686 l 2850 4665 l 2850 4644 l 2850 4622 l - 2850 4599 l 2850 4576 l 2850 4552 l 2850 4527 l 2850 4501 l - 2850 4475 l 2850 4449 l 2850 4422 l 2850 4395 l 2850 4369 l - 2850 4343 l 2850 4318 l 2850 4293 l 2850 4270 l 2850 4248 l - 2850 4227 l 2850 4207 l 2850 4188 l 2850 4170 l 2850 4149 l - 2850 4129 l 2850 4109 l 2850 4090 l 2850 4072 l 2851 4054 l - 2851 4036 l 2852 4019 l 2852 4003 l 2853 3987 l 2854 3972 l - 2856 3957 l 2857 3943 l 2859 3930 l 2860 3917 l 2863 3904 l - 2865 3888 l 2868 3872 l 2872 3855 l 2875 3838 l 2880 3820 l - 2884 3801 l 2889 3783 l 2894 3765 l 2900 3748 l 2905 3731 l - 2910 3716 l 2915 3702 l 2920 3690 l 2925 3678 l 2932 3664 l - 2939 3651 l 2947 3638 l 2955 3627 l 2964 3618 l 2974 3609 l - 2983 3601 l 2993 3594 l 3002 3589 l 3013 3583 l 3021 3579 l - 3031 3574 l 3042 3569 l 3055 3563 l 3070 3557 l 3087 3550 l - 3105 3543 l 3122 3536 l 3136 3531 l 3145 3527 l 3149 3525 l - 3150 3525 l gs col0 s gr -% Polyline -n 2614 5735 m 2615 5736 l 2619 5739 l 2628 5746 l 2642 5758 l 2659 5772 l - 2676 5788 l 2693 5803 l 2707 5816 l 2719 5829 l 2730 5840 l - 2738 5852 l 2746 5863 l 2752 5874 l 2758 5884 l 2763 5896 l - 2769 5909 l 2774 5922 l 2779 5937 l 2783 5952 l 2787 5968 l - 2791 5985 l 2795 6002 l 2798 6019 l 2801 6036 l 2804 6054 l - 2807 6072 l 2809 6087 l 2811 6102 l 2814 6119 l 2816 6136 l - 2818 6154 l 2821 6173 l 2823 6193 l 2825 6213 l 2828 6234 l - 2830 6255 l 2832 6276 l 2834 6298 l 2836 6319 l 2837 6339 l - 2839 6360 l 2840 6380 l 2842 6399 l 2843 6418 l 2844 6436 l - 2845 6453 l 2845 6471 l 2846 6490 l 2847 6509 l 2847 6528 l - 2848 6548 l 2848 6569 l 2849 6590 l 2849 6612 l 2849 6634 l - 2849 6656 l 2850 6678 l 2850 6699 l 2850 6721 l 2850 6743 l - 2850 6764 l 2850 6786 l 2850 6807 l 2850 6829 l 2850 6850 l - 2850 6873 l 2850 6896 l 2850 6920 l 2850 6945 l 2850 6971 l - 2850 6997 l 2850 7023 l 2850 7050 l 2850 7077 l 2850 7103 l - 2850 7129 l 2850 7154 l 2850 7179 l 2850 7202 l 2850 7224 l - 2850 7245 l 2850 7265 l 2850 7284 l 2850 7302 l 2850 7323 l - 2850 7343 l 2850 7363 l 2850 7382 l 2850 7400 l 2851 7418 l - 2851 7436 l 2852 7453 l 2852 7469 l 2853 7485 l 2854 7500 l - 2856 7515 l 2857 7529 l 2859 7542 l 2860 7555 l 2863 7569 l - 2865 7584 l 2868 7600 l 2872 7617 l 2875 7635 l 2880 7653 l - 2884 7671 l 2889 7689 l 2894 7707 l 2900 7725 l 2905 7741 l - 2910 7756 l 2915 7770 l 2920 7783 l 2925 7795 l 2932 7809 l - 2939 7822 l 2947 7834 l 2955 7845 l 2964 7855 l 2974 7864 l - 2983 7871 l 2993 7878 l 3002 7884 l 3013 7889 l 3021 7893 l - 3031 7898 l 3042 7903 l 3055 7909 l 3070 7915 l 3087 7922 l - 3105 7929 l 3122 7936 l 3136 7941 l 3145 7945 l 3149 7947 l - 3150 7947 l gs col0 s gr -% Polyline -n 3930 8325 m 3825 8325 3825 9345 105 arcto 4 {pop} repeat - 3825 9450 6720 9450 105 arcto 4 {pop} repeat - 6825 9450 6825 8430 105 arcto 4 {pop} repeat - 6825 8325 3930 8325 105 arcto 4 {pop} repeat - cp gs col0 s gr -% Polyline -gs clippath -5295 8046 m 5325 7902 l 5355 8046 l 5355 7860 l 5295 7860 l cp -5355 8154 m 5325 8298 l 5295 8154 l 5295 8340 l 5355 8340 l cp -clip -n 5325 8325 m 5325 7875 l gs col0 s gr gr - -% arrowhead -n 5355 8154 m 5325 8298 l 5295 8154 l 5325 8178 l 5355 8154 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 5295 8046 m 5325 7902 l 5355 8046 l 5325 8022 l 5295 8046 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 3930 6750 m 3825 6750 3825 7770 105 arcto 4 {pop} repeat - 3825 7875 6720 7875 105 arcto 4 {pop} repeat - 6825 7875 6825 6855 105 arcto 4 {pop} repeat - 6825 6750 3930 6750 105 arcto 4 {pop} repeat - cp gs col0 s gr -% Polyline -gs clippath -5295 6471 m 5325 6327 l 5355 6471 l 5355 6285 l 5295 6285 l cp -5355 6579 m 5325 6723 l 5295 6579 l 5295 6765 l 5355 6765 l cp -clip -n 5325 6750 m 5325 6300 l gs col0 s gr gr - -% arrowhead -n 5355 6579 m 5325 6723 l 5295 6579 l 5325 6603 l 5355 6579 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 5295 6471 m 5325 6327 l 5355 6471 l 5325 6447 l 5295 6471 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5295 4896 m 5325 4752 l 5355 4896 l 5355 4710 l 5295 4710 l cp -5355 5004 m 5325 5148 l 5295 5004 l 5295 5190 l 5355 5190 l cp -clip -n 5325 5175 m 5325 4725 l gs col0 s gr gr - -% arrowhead -n 5355 5004 m 5325 5148 l 5295 5004 l 5325 5028 l 5355 5004 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 5295 4896 m 5325 4752 l 5355 4896 l 5325 4872 l 5295 4896 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 3930 3600 m 3825 3600 3825 4620 105 arcto 4 {pop} repeat - 3825 4725 6720 4725 105 arcto 4 {pop} repeat - 6825 4725 6825 3705 105 arcto 4 {pop} repeat - 6825 3600 3930 3600 105 arcto 4 {pop} repeat - cp gs col0 s gr -% Polyline -gs clippath -4470 3321 m 4500 3177 l 4530 3321 l 4530 3135 l 4470 3135 l cp -4530 3429 m 4500 3573 l 4470 3429 l 4470 3615 l 4530 3615 l cp -clip -n 4500 3600 m 4500 3150 l gs col0 s gr gr - -% arrowhead -n 4530 3429 m 4500 3573 l 4470 3429 l 4500 3453 l 4530 3429 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 4470 3321 m 4500 3177 l 4530 3321 l 4500 3297 l 4470 3321 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 3930 2025 m 3825 2025 3825 3045 105 arcto 4 {pop} repeat - 3825 3150 6720 3150 105 arcto 4 {pop} repeat - 6825 3150 6825 2130 105 arcto 4 {pop} repeat - 6825 2025 3930 2025 105 arcto 4 {pop} repeat - cp gs col0 s gr -% Polyline -gs clippath -5295 1746 m 5325 1602 l 5355 1746 l 5355 1560 l 5295 1560 l cp -5355 1854 m 5325 1998 l 5295 1854 l 5295 2040 l 5355 2040 l cp -clip -n 5325 2025 m 5325 1575 l gs col0 s gr gr - -% arrowhead -n 5355 1854 m 5325 1998 l 5295 1854 l 5325 1878 l 5355 1854 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 5295 1746 m 5325 1602 l 5355 1746 l 5325 1722 l 5295 1746 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 3930 450 m 3825 450 3825 1470 105 arcto 4 {pop} repeat - 3825 1575 6720 1575 105 arcto 4 {pop} repeat - 6825 1575 6825 555 105 arcto 4 {pop} repeat - 6825 450 3930 450 105 arcto 4 {pop} repeat - cp gs col0 s gr -% Polyline -gs clippath -6120 3321 m 6150 3177 l 6180 3321 l 6180 3135 l 6120 3135 l cp -6180 3429 m 6150 3573 l 6120 3429 l 6120 3615 l 6180 3615 l cp -clip -n 6150 3600 m 6150 3150 l gs col0 s gr gr - -% arrowhead -n 6180 3429 m 6150 3573 l 6120 3429 l 6150 3453 l 6180 3429 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 6120 3321 m 6150 3177 l 6180 3321 l 6150 3297 l 6120 3321 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5364 10069 m 5263 10176 l 5312 10038 l 5217 10197 l 5268 10228 l cp -5211 9581 m 5311 9473 l 5263 9612 l 5358 9453 l 5307 9422 l cp -clip -n 5325 9450 m 5100 9825 l 5475 9825 l 5250 10200 l gs col0 s gr gr - -% arrowhead -n 5211 9581 m 5311 9473 l 5263 9612 l 5249 9576 l 5211 9581 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 5364 10069 m 5263 10176 l 5312 10038 l 5326 10074 l 5364 10069 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 3930 5175 m 3825 5175 3825 6195 105 arcto 4 {pop} repeat - 3825 6300 6720 6300 105 arcto 4 {pop} repeat - 6825 6300 6825 5280 105 arcto 4 {pop} repeat - 6825 5175 3930 5175 105 arcto 4 {pop} repeat - cp gs col0 s gr -/Times-Roman ff 300.00 scf sf -5325 7500 m -gs 1 -1 sc (IP Protocol) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -5325 9150 m -gs 1 -1 sc (drivers) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -5325 5775 m -gs 1 -1 sc (UDP Protocol) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -5250 4200 m -gs 1 -1 sc (BSD Sockets) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -5325 1050 m -gs 1 -1 sc (Remote Debugger) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -5325 8850 m -gs 1 -1 sc (Ethernet / serial link / ...) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -1650 6075 m -gs 1 -1 sc (TCP/IP stack) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -1575 5775 m -gs 1 -1 sc (FreeBSD) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -5325 10500 m -gs 1 -1 sc (Physical link) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 225.00 scf sf -7275 3450 m -gs 1 -1 sc (secondary port \(2010\)) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 225.00 scf sf -3525 3450 m -gs 1 -1 sc (primary port \(2000\)) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -5325 2700 m -gs 1 -1 sc (SUN RPC Server) dup sw pop 2 div neg 0 rm col0 sh gr -$F2psEnd -rs diff --git a/doc/rgdb_specs/layers.jpg b/doc/rgdb_specs/layers.jpg deleted file mode 100644 index 5e4b8ee67594df148b7623289c5ddf3391116706..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31318 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 -@c Emmanuel Raguet -@c -@c -@c $Id$ -@c - -@chapter Objectives - -@c XXX reference -This section is intended to clearly define the current objectives of our work. -First, we will try here to list some ambitious requirements for the debugger -in section @b{List of Requirements}. These requirements will deliberately be much more -ambitious than what we will provide directly ourselves in the hope that the -Internet development model will enable others to implement some features we -rejected for man-power reasons in the first step. We are committed to do the -core work and redistribute it but would appreciate any comment and enhancement. -Then, in section @b{Requirements Analysis} we will analyze each requirement to see -what technical problem must be solved if we want to fullfill it. After this -analysis, we will determine in section @b{Requirements Selection} the requirements we -chose to implement and the ones we will not. We will then clearly identify the -limits of our solution in section @b{Implied Restrictions}. - - -@section List of Requirements - -We will identify here possible requirements for the type of debug that may be -provided : - -@table @b - -@item [(R1)]: -We want to use GDB as the front-end debugger, - -@item [(R2)]: -We want to support at least Intel and PowerPC as target processor architecture, - -@item [(R3)]: -We want to use the GDB thread debugging interface, - -@item [(R4)]: -We want to be able to debug a remote target over a serial line, - -@item [(R5)]: -We want to be able to debug a remote target over Ethernet, - -@item [(R6)]: -The set of target code path we will be able to debug using RGDBSD must -be clearly identified. It will be called Debug Path Set (@emph{DPS}) in the -remaining of this document, - -@item [(R7)]: -@emph{DPS} must include the RTEMS core executive itself, - -@item [(R8)]: -@emph{DPS} must include the FreeBSD stack, - -@item [(R9)]: -@emph{DPS} must include anything but the FreeBSD stack and the RTEMS -core executive, - -@item [(R10)]: -We want to enable several persons to debug different parts of the code -running on the target, - -@item [(R11)]: -As much as possible the system must be frozen during a debug session -so that debugging a particular portion of code does not prevent another part -from functioning, -@end table - -@section Requirements Analysis - -@table @b - -@item [(R1)]: -Worth recalling it. It mainly imposes few restrictions on the binary -files type, target processor type as : - -@itemize @bullet - -@item the binary format must be understood by GDB (to find debugging information). -Elf, Coff and A.out are the main formats currently supported. Elf/Dwarf 2.0 -binary support will be our main target as they are the preferred format for -Intel and PowerPC processors. No change in GDB will be required for other binaries -except may be a new configuration file changing the binary/debug file format, - -@item the processor must be supported for disassemble/step instruction command, - -@item the target system must be supported. As far as I know RTEMS is not currently -@emph{officially} supported anyway, -@end itemize - -@item [(R2)]: -Our primary targets are Intel and PowerPC. We however do not think implementing -RGDBSD for other processors will be a heavy task. It will mainly require : - -@enumerate -@item Implementing exception handling for the target processor, - -@item Interfacing the generic part of RGDBSD with the low level exception handling -and make RGDBSD aware of exception used for debugging (usually illegal instruction -or dedicated trap, single step), - -@item Making GDB aware of the frame layout pushed on exceptions, - -@item Implement the code for data transfer for the exception frame, - -@item Implement code to copy data cache back to main memory and invalidate instruction -cache. This is needed in order to be sure opcode modification used to set breakpoint -that use the data cache will be proagated to the instruction cache, -@end enumerate - -As soon as we will have completed the first core work a document describing -how to port it to a new processor should be written. So far we will organize -the source tree with processor dependent directories so that port will be as -easy as possible. May be a bare processor support should be created, - - -@item [(R3)]: -GDB already has an interface for manipulating multi-threaded programs. -This interface is rather weak at the moment but it will certainly be improved -in the future with the generalization of POSIX thread API on Linux and other -operating systems. This implies that either GDB or RGDBSD is able to obtain -the list of threads currently executing. The choice of implementing this in -GDB or RGDBSD is a tradeof between target code size and simplicity, - -@item [(R4)]: -Regular GDB code contains clients code for debugging over a serial line. -However only few functions are implemented. We would like to provide a better -support and to uniformize serial line debugging with debugging over Ethernet -via the use of SLIP, - -@item [(R5)]: -Regular GDB code contains client code for debugging over Ethernet for -VxWorks via the SUN RPC library. So there will be at least one starting point -to implement remote debugging over Ethernet via SUN RPC. The Chorus remote debugging -code has been disclosed under GPL and also contains code for debugging suing -SUN RPC, - -@item [(R6)]: -Due to a classical chicken and egg problems, the remote debugging daemon -cannot be used to debug code it uses to function. Thus depending on the API -used by RGDBSD, some parts of the target system will not be debuggable via GDB. -The most important point is documentation because my feeling is that implementing -RGDBSD on a totally different @emph{dedicated} nano kernel should be possible, - -@item [(R7)]: -RTEMS core executive is a real-time OS which implements priority level -scheduling, synchronization objects, and interrupt handling. As mentioned in -previous item, we may not debug theses features if RGDBSD uses them. This requirement -is thus very strong because it impose that : - -@enumerate - -@item RGDBSD is totally interrupt driven (no thread API available), - -@item But it does not use RTEMS interrupt management, - -@item Nor does not use RTEMS exception management, - -@item RGDBSD must provide its own UDP/IP stack as the current FreeBSD code rely on -tasks switching and RTEMS provided synchronization object for input path handling, -@end enumerate - -So our feeling is that the @b{(R7)} more or less requires to write a @emph{dedicated} -nano kernel with a very small dedicated UDP/IP stack. - - -@item [(R8)]: -GDB remote debugging over Ethernet code communicates with the remote -target via the SUN RPC protocol. This requires a UDP/IP protocol and a minimal -socket like interface. In RTEMS environment, this feature is currently provided -by the FreeBSD stack. Again, if we use the FreeBSD stack itself for remote communication, -it will be impossible to debug this stack as a breakpoint in the stack code -will stop its execution and there would be no more way to communicate with the -target. A solution consists in implementing a minimal, dedicated UDP/IP stack -(with at least IP and UDP protocols, a minimal BSD sockets) and a simple SUN -RPC library, which will be both dedicated to the debug. We can use RTEMS API -to implement it if @b{(R7)} is not required. As the two stack will need -to share the same chip, a kind of shared filter must be implemented at the bottom -of the two stacks so that Ethernet frames can be dynamically directed either -to the dedicated UDP/IP debug stack or to the regular FreeBSD stack. The fact -that in the current design, the low level ethernet input routine mainly signal -a thread should facilitate the design of this filter. The output path is less -complicated as it is run by a task and thus can sleep on a synchronization object, - -@item [(R9)]: -This requirement represents what we find reasonable as a first target. -However, we can still present to the final user this kind of debugging via different -model. RTEMS can be represented as a single threaded system or, because RTEMS -is a multitasking system, as an ensemble of separate tasks. In the first representation, -the debugger sees only 1 ``task'' without distinguishing the core executive -part from the applicative part. This is the simplest way to implement the debugger -but also implies that there is no way to protect the core executive. Some of -these tasks are system tasks (tasks form the core executive and from the FreeBSD -stack), the other ones are tasks implemented by the developer. The developer -wants to debug his tasks, and sometimes only one of his tasks. We can provide -a way to debug not the entire system but only the concerned task by testing -if the current running task is a debugged task (test on the task identifier). -GDB offers an API to ``detach'' thread so that if a detached thread hits a -breakpoint it is automatically restarted without user intervention, - -@item [(R10)]: -Several developers can work on a large project, each on a specific -module. Sometimes only one target is available for everyone. This requirements -is not really meaningfull until RTEMS supports dynamic code loading, - -@item [(R11)]: -This requirement heavily depends on the @b{(R7)} and @b{(R8)} -requirements. -@end table - -@section Requirements Selection - - -@subsection Requirement We Will Take Into Account For the First Implementation - -@table @b - -@item [(R1)]: -Obviously. - -@item [(R2)]: -As these are our targets. Of course other will be free to contribute. -We will however document the works that needs to be done in order to port the -debug code to other processors, - -@item [(R3)]: -We think it is feasible with only few RTEMS modifications, - -@item [(R5)]: -We think serial line debugging is nowadays too restrictive as most equipment -are now connected via Ethernet, - -@item [(R6)]: -This is a documentation problem and should be fairly easy to describe -once we have the RGDBSD code, - -@item [(R9)]: -We will try to provide the multi-thread target system presentation, -@end table - -@subsection Requirements We Will Not Implement - -@table @b - -@item [(R4)]: -it will not be implemented for the moment. It is just a matter on implementing -SLIP in the FreeBSD stack and alternative solutions already exist in the meantime, - -@item [(R7)]: -To simplify the first developments, we don't plan to implement a @emph{dedicated} -nano-kernel to allow the RTEMS kernel to be debugged. It means that, if any -breakpoint is set in the kernel, unpredictable behaviors can occur. So, developers -must keep in mind to avoid stopping the kernel. They must also keep in mind, -in order to not stop the kernel, that the user's tasks must have a lower priority -than the tasks used for debug. The solution is to use a specific very-high priority -level for the system tasks used directly or indirectly by RGDBSD. The SYSTEM_TASK -attribute that already exists should be fine. - -@item [(R8)]: -To avoid increasing the code size and the used memory and because the -FreeBSD stack doesn't need to be debug any more, we choose not to implement -a minimal TCP/IP stack but rather to use the FreeBSD one as communication protocol, - -@item [(R10)]: -We will see later when a file system will be available and we can implement -@b{exec} system call, - -@item [(R11)]: -Without a separate TCP/IP stack it will be hard to freeze the system -as some interrupts must occur in order to enable the FreeBSD stack to function, -@end table - -@section Implied Restrictions - -High priority level must be used for these features : - -@itemize @bullet - -@item FreeBSD interrupt handling thread, - -@item Debugger threads. -@end itemize - -This will allows these tasks not to be stopped when a process is stopped -in debug mode - -If we don't want to use a ``specific'' priority level, we must affect -priority to each of these tasks as follow : - -@itemize @bullet - -@item FreeBSD stack (high priority) - -@item Debugger (less high priority) -@end itemize - -The user must remember the higher priority level he can use for his -software in order not to block one of the previous threads and to not put breakpoints -in part of the code executed by RGDBSD. - - diff --git a/doc/rgdb_specs/process.eps b/doc/rgdb_specs/process.eps deleted file mode 100644 index 14ebd297e9..0000000000 --- a/doc/rgdb_specs/process.eps +++ /dev/null @@ -1,672 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: process.eps -%%Creator: fig2dev Version 3.2 Patchlevel 1 -%%CreationDate: Tue Nov 10 13:55:53 1998 -%%For: valette@tri-yann (Eric Valette,,6891,) -%%Orientation: Portrait -%%BoundingBox: 0 0 1245 646 -%%Pages: 0 -%%BeginSetup -%%EndSetup -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save --19.0 647.0 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/reencdict 12 dict def /ReEncode { reencdict begin -/newcodesandnames exch def /newfontname exch def /basefontname exch def -/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def -basefontdict { exch dup /FID ne { dup /Encoding eq -{ exch dup length array copy newfont 3 1 roll put } -{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall -newfont /FontName newfontname put newcodesandnames aload pop -128 1 255 { newfont /Encoding get exch /.notdef put } for -newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat -newfontname newfont definefont pop end } def -/isovec [ -8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde -8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis -8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron -8#220 /dotlessi 8#230 /oe 8#231 /OE -8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling -8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis -8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot -8#255 /endash 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus -8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph -8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine -8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf -8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute -8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring -8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute -8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute -8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve -8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply -8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex -8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave -8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring -8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute -8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute -8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve -8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide -8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex -8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def -/Times-Roman /Times-Roman-iso isovec ReEncode - /DrawEllipse { - /endangle exch def - /startangle exch def - /yrad exch def - /xrad exch def - /y exch def - /x exch def - /savematrix mtrx currentmatrix def - x y tr xrad yrad sc 0 0 1 startangle endangle arc - closepath - savematrix setmatrix - } def - -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog - -$F2psBegin -10 setmiterlimit -n -1000 11779 m -1000 -1000 l 22054 -1000 l 22054 11779 l cp clip - 0.06000 0.06000 sc -/Times-Roman-iso ff 300.00 scf sf -2250 600 m -gs 1 -1 sc (INITIALIZATION) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 300.00 scf sf -2250 825 m -gs 1 -1 sc (TASK) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 300.00 scf sf -6150 825 m -gs 1 -1 sc (TASK) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 300.00 scf sf -6150 600 m -gs 1 -1 sc (COMMAND MANAGEMENT) dup sw pop 2 div neg 0 rm col0 sh gr -7.500 slw -% Ellipse -n 10050 3600 1275 525 0 360 DrawEllipse gs col0 s gr - -/Times-Roman-iso ff 180.00 scf sf -10050 3450 m -gs 1 -1 sc (WAIT FOR) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -10050 3900 m -gs 1 -1 sc (SEMAPHORE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -10050 3675 m -gs 1 -1 sc (WAKE-UP) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 1950 m -gs 1 -1 sc (WAIT FOR) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 2175 m -gs 1 -1 sc (RPC MESSAGE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 2400 m -gs 1 -1 sc (FROM GDB) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 3750 m -gs 1 -1 sc (EXECUTE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 3975 m -gs 1 -1 sc (RECEIVED) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 4200 m -gs 1 -1 sc (COMMAND) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 9150 m -gs 1 -1 sc (SEND) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 9375 m -gs 1 -1 sc (RESULT) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 9600 m -gs 1 -1 sc (IF NEEDED) dup sw pop 2 div neg 0 rm col0 sh gr -% Ellipse -n 5925 9300 1275 525 0 360 DrawEllipse gs col0 s gr - -% Polyline -n 5925 9825 m 5925 9826 l 5925 9830 l 5926 9839 l 5926 9855 l 5928 9876 l - 5929 9899 l 5931 9923 l 5934 9946 l 5937 9967 l 5941 9987 l - 5945 10004 l 5950 10020 l 5956 10035 l 5963 10050 l 5969 10063 l - 5977 10076 l 5986 10089 l 5996 10103 l 6007 10117 l 6020 10132 l - 6033 10146 l 6048 10161 l 6063 10175 l 6080 10189 l 6097 10203 l - 6114 10216 l 6132 10228 l 6150 10240 l 6169 10252 l 6188 10263 l - 6203 10271 l 6220 10279 l 6237 10288 l 6255 10296 l 6274 10305 l - 6293 10313 l 6314 10321 l 6335 10329 l 6356 10337 l 6378 10345 l - 6401 10352 l 6423 10359 l 6445 10366 l 6467 10372 l 6488 10378 l - 6509 10383 l 6529 10388 l 6549 10392 l 6568 10396 l 6588 10400 l - 6606 10403 l 6625 10406 l 6644 10409 l 6664 10411 l 6684 10413 l - 6704 10415 l 6724 10416 l 6745 10417 l 6766 10418 l 6788 10418 l - 6809 10418 l 6830 10417 l 6851 10416 l 6871 10415 l 6891 10413 l - 6911 10411 l 6931 10409 l 6950 10406 l 6969 10403 l 6988 10400 l - 7007 10396 l 7026 10392 l 7046 10388 l 7066 10383 l 7087 10378 l - 7108 10372 l 7129 10366 l 7151 10359 l 7173 10352 l 7195 10345 l - 7216 10337 l 7237 10329 l 7258 10321 l 7277 10313 l 7296 10305 l - 7313 10296 l 7330 10288 l 7346 10279 l 7361 10271 l 7375 10263 l - 7392 10252 l 7408 10240 l 7423 10228 l 7438 10216 l 7452 10203 l - 7465 10189 l 7478 10175 l 7490 10161 l 7501 10146 l 7510 10132 l - 7519 10117 l 7527 10103 l 7534 10089 l 7540 10076 l 7545 10063 l - 7550 10050 l 7555 10035 l 7558 10020 l 7562 10004 l 7565 9987 l - 7567 9967 l 7569 9946 l 7571 9923 l 7572 9899 l 7573 9876 l - 7574 9855 l 7575 9839 l 7575 9830 l 7575 9826 l 7575 9825 l gs col0 s gr -/Times-Roman-iso ff 180.00 scf sf -2250 8025 m -gs 1 -1 sc (DELETE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -2250 8250 m -gs 1 -1 sc (INITIALIZATION) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -2250 8475 m -gs 1 -1 sc (TASK) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -2250 6525 m -gs 1 -1 sc (COMMAND MANAGEMENT) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -2250 6300 m -gs 1 -1 sc (CREATE SEPARATE TASK) dup sw pop 2 div neg 0 rm col0 sh gr -% Ellipse -n 2250 6375 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 2250 8175 1275 525 0 360 DrawEllipse gs col0 s gr - -% Polyline -gs clippath -2280 5730 m 2250 5850 l 2220 5730 l 2220 5865 l 2280 5865 l cp -clip -n 2250 5100 m 2250 5850 l gs col0 s gr gr - -% arrowhead -n 2280 5730 m 2250 5850 l 2220 5730 l col0 s -% Polyline -gs clippath -2280 7530 m 2250 7650 l 2220 7530 l 2220 7665 l 2280 7665 l cp -clip -n 2250 6900 m 2250 7650 l gs col0 s gr gr - -% arrowhead -n 2280 7530 m 2250 7650 l 2220 7530 l col0 s -% Ellipse -n 2250 2775 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 2250 4575 1275 525 0 360 DrawEllipse gs col0 s gr - -% Polyline -gs clippath -2280 3930 m 2250 4050 l 2220 3930 l 2220 4065 l 2280 4065 l cp -clip -n 2250 3300 m 2250 4050 l gs col0 s gr gr - -% arrowhead -n 2280 3930 m 2250 4050 l 2220 3930 l col0 s -/Times-Roman-iso ff 180.00 scf sf -2250 2850 m -gs 1 -1 sc (INITIALIZATION) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -2250 4425 m -gs 1 -1 sc (CONNECT) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -2250 4875 m -gs 1 -1 sc (HANDLER) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -2250 4650 m -gs 1 -1 sc (EXCEPTION) dup sw pop 2 div neg 0 rm col0 sh gr -% Ellipse -n 10050 5400 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 5925 2100 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 5925 3900 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 5943 5681 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 5925 7500 1275 525 0 360 DrawEllipse gs col0 s gr - -% Polyline -60.000 slw -n 600 75 m 375 75 375 10500 225 arcto 4 {pop} repeat - 375 10725 12600 10725 225 arcto 4 {pop} repeat - 12825 10725 12825 300 225 arcto 4 {pop} repeat - 12825 75 600 75 225 arcto 4 {pop} repeat - cp gs col0 s gr -% Polyline -7.500 slw -n 11700 3075 m 11700 5925 l gs col0 s gr -% Polyline -gs clippath -10080 4755 m 10050 4875 l 10020 4755 l 10020 4890 l 10080 4890 l cp -clip -n 10050 4125 m 10050 4875 l gs col0 s gr gr - -% arrowhead -n 10080 4755 m 10050 4875 l 10020 4755 l col0 s -% Polyline -gs clippath -5955 3255 m 5925 3375 l 5895 3255 l 5895 3390 l 5955 3390 l cp -clip -n 5925 2625 m 5925 3375 l gs col0 s gr gr - -% arrowhead -n 5955 3255 m 5925 3375 l 5895 3255 l col0 s -% Polyline -gs clippath -5955 5055 m 5925 5175 l 5895 5055 l 5895 5190 l 5955 5190 l cp -clip -n 5925 4425 m 5925 5175 l gs col0 s gr gr - -% arrowhead -n 5955 5055 m 5925 5175 l 5895 5055 l col0 s -% Polyline -n 7575 1500 m 7575 9900 l gs col0 s gr -% Polyline -gs clippath -5955 6855 m 5925 6975 l 5895 6855 l 5895 6990 l 5955 6990 l cp -clip -n 5925 6225 m 5925 6975 l gs col0 s gr gr - -% arrowhead -n 5955 6855 m 5925 6975 l 5895 6855 l col0 s -% Polyline -gs clippath -5955 8655 m 5925 8775 l 5895 8655 l 5895 8790 l 5955 8790 l cp -clip -n 5925 8025 m 5925 8775 l gs col0 s gr gr - -% arrowhead -n 5955 8655 m 5925 8775 l 5895 8655 l col0 s -% Polyline -45.000 slw -n 4050 375 m 4050 10350 l gs col0 s gr -% Polyline -n 8175 375 m 8175 10425 l gs col0 s gr -% Polyline -30.000 slw - [60] 0 sd -gs clippath -4526 2104 m 4650 2100 l 4543 2162 l 4702 2116 l 4685 2059 l cp -clip -n 3525 6375 m 3526 6375 l 3528 6374 l 3531 6372 l 3537 6370 l 3544 6366 l - 3554 6361 l 3566 6354 l 3580 6345 l 3596 6334 l 3612 6322 l - 3630 6307 l 3648 6291 l 3666 6272 l 3684 6252 l 3702 6230 l - 3719 6207 l 3735 6181 l 3750 6153 l 3765 6124 l 3778 6092 l - 3791 6057 l 3804 6020 l 3815 5980 l 3826 5937 l 3837 5890 l - 3847 5839 l 3856 5785 l 3866 5726 l 3875 5663 l 3880 5624 l - 3885 5584 l 3891 5543 l 3896 5500 l 3901 5456 l 3906 5410 l - 3911 5363 l 3917 5314 l 3922 5264 l 3927 5213 l 3932 5160 l - 3938 5105 l 3943 5049 l 3948 4992 l 3954 4934 l 3959 4875 l - 3965 4814 l 3970 4753 l 3976 4690 l 3981 4627 l 3987 4563 l - 3993 4499 l 3999 4434 l 4004 4369 l 4010 4303 l 4016 4237 l - 4022 4172 l 4028 4106 l 4034 4041 l 4040 3976 l 4046 3912 l - 4052 3848 l 4058 3785 l 4064 3722 l 4070 3661 l 4076 3600 l - 4082 3541 l 4088 3483 l 4094 3426 l 4100 3370 l 4106 3315 l - 4112 3262 l 4118 3211 l 4124 3161 l 4130 3112 l 4137 3065 l - 4143 3019 l 4149 2975 l 4156 2932 l 4162 2891 l 4168 2851 l - 4175 2813 l 4186 2753 l 4197 2698 l 4209 2646 l 4221 2597 l - 4233 2553 l 4247 2511 l 4261 2472 l 4276 2436 l 4291 2403 l - 4308 2371 l 4326 2342 l 4345 2315 l 4365 2289 l 4385 2265 l - 4407 2243 l 4430 2223 l 4453 2204 l 4476 2187 l 4500 2171 l - 4523 2157 l 4545 2145 l 4566 2134 l 4585 2125 l 4601 2118 l - 4616 2112 l 4627 2107 l 4636 2104 l 4650 2100 l gs col4 s gr gr - [] 0 sd -% arrowhead -7.500 slw -n 4526 2104 m 4650 2100 l 4543 2162 l col4 s -% Polyline -30.000 slw - [60] 0 sd -gs clippath -8652 3585 m 8775 3600 l 8659 3644 l 8823 3624 l 8816 3565 l cp -clip -n 7200 5700 m 7202 5700 l 7206 5699 l 7214 5698 l 7225 5697 l 7242 5695 l - 7262 5691 l 7287 5687 l 7315 5682 l 7346 5676 l 7379 5668 l - 7413 5660 l 7447 5650 l 7481 5640 l 7514 5628 l 7545 5616 l - 7575 5602 l 7603 5587 l 7629 5571 l 7654 5554 l 7676 5535 l - 7697 5515 l 7717 5492 l 7736 5468 l 7753 5442 l 7769 5414 l - 7785 5383 l 7800 5350 l 7811 5324 l 7821 5297 l 7832 5268 l - 7842 5238 l 7852 5207 l 7862 5174 l 7871 5140 l 7881 5104 l - 7891 5068 l 7901 5030 l 7910 4991 l 7920 4951 l 7930 4910 l - 7939 4868 l 7949 4825 l 7959 4782 l 7968 4738 l 7978 4694 l - 7987 4650 l 7997 4606 l 8007 4562 l 8016 4518 l 8026 4475 l - 8036 4432 l 8045 4390 l 8055 4349 l 8065 4309 l 8074 4270 l - 8084 4232 l 8094 4196 l 8104 4160 l 8113 4126 l 8123 4093 l - 8133 4062 l 8143 4032 l 8154 4003 l 8164 3976 l 8175 3950 l - 8190 3917 l 8206 3886 l 8222 3858 l 8239 3832 l 8258 3808 l - 8278 3785 l 8299 3765 l 8321 3746 l 8346 3729 l 8372 3713 l - 8400 3698 l 8430 3684 l 8461 3672 l 8494 3660 l 8528 3650 l - 8562 3640 l 8596 3632 l 8629 3624 l 8660 3618 l 8688 3613 l - 8713 3609 l 8733 3605 l 8750 3603 l 8775 3600 l gs col4 s gr gr - [] 0 sd -% arrowhead -7.500 slw -n 8652 3585 m 8775 3600 l 8659 3644 l col4 s -% Polyline -gs clippath -10084 2956 m 10050 3075 l 10024 2954 l 10020 3089 l 10079 3091 l cp -clip -n 10050 3075 m 10051 3045 l 10053 3024 l 10054 3001 l 10056 2977 l 10059 2954 l - 10062 2933 l 10066 2913 l 10070 2896 l 10075 2880 l 10081 2865 l - 10088 2850 l 10094 2837 l 10102 2824 l 10111 2811 l 10121 2797 l - 10132 2783 l 10145 2768 l 10158 2754 l 10173 2739 l 10188 2725 l - 10205 2711 l 10222 2697 l 10239 2684 l 10257 2672 l 10275 2660 l - 10294 2648 l 10313 2638 l 10328 2629 l 10345 2621 l 10362 2612 l - 10380 2604 l 10399 2595 l 10418 2587 l 10439 2579 l 10460 2571 l - 10481 2563 l 10503 2555 l 10526 2548 l 10548 2541 l 10570 2534 l - 10592 2528 l 10613 2522 l 10634 2517 l 10654 2512 l 10674 2508 l - 10693 2504 l 10713 2500 l 10731 2497 l 10750 2494 l 10769 2491 l - 10789 2489 l 10809 2487 l 10829 2485 l 10849 2484 l 10870 2483 l - 10891 2482 l 10913 2482 l 10934 2482 l 10955 2483 l 10976 2484 l - 10996 2485 l 11016 2487 l 11036 2489 l 11056 2491 l 11075 2494 l - 11094 2497 l 11113 2500 l 11132 2504 l 11151 2508 l 11171 2512 l - 11191 2517 l 11212 2522 l 11233 2528 l 11254 2534 l 11276 2541 l - 11298 2548 l 11320 2555 l 11341 2563 l 11362 2571 l 11383 2579 l - 11402 2587 l 11421 2595 l 11438 2604 l 11455 2612 l 11471 2621 l - 11486 2629 l 11500 2638 l 11517 2648 l 11533 2660 l 11548 2672 l - 11563 2684 l 11577 2697 l 11590 2711 l 11603 2725 l 11615 2739 l - 11626 2754 l 11635 2768 l 11644 2783 l 11652 2797 l 11659 2811 l - 11665 2824 l 11670 2837 l 11675 2850 l 11680 2865 l 11683 2880 l - 11687 2896 l 11690 2913 l 11692 2933 l 11694 2954 l 11696 2977 l - 11697 3001 l 11698 3024 l 11699 3045 l 11700 3061 l 11700 3070 l - 11700 3074 l 11700 3075 l gs col0 s gr gr - -% arrowhead -n 10084 2956 m 10050 3075 l 10024 2954 l col0 s -% Polyline -n 10050 5925 m 10050 5926 l 10050 5930 l 10051 5939 l 10051 5955 l 10053 5976 l - 10054 5999 l 10056 6023 l 10059 6046 l 10062 6067 l 10066 6087 l - 10070 6104 l 10075 6120 l 10081 6135 l 10088 6150 l 10094 6163 l - 10102 6176 l 10111 6189 l 10121 6203 l 10132 6217 l 10145 6232 l - 10158 6246 l 10173 6261 l 10188 6275 l 10205 6289 l 10222 6303 l - 10239 6316 l 10257 6328 l 10275 6340 l 10294 6352 l 10313 6363 l - 10328 6371 l 10345 6379 l 10362 6388 l 10380 6396 l 10399 6405 l - 10418 6413 l 10439 6421 l 10460 6429 l 10481 6437 l 10503 6445 l - 10526 6452 l 10548 6459 l 10570 6466 l 10592 6472 l 10613 6478 l - 10634 6483 l 10654 6488 l 10674 6492 l 10693 6496 l 10713 6500 l - 10731 6503 l 10750 6506 l 10769 6509 l 10789 6511 l 10809 6513 l - 10829 6515 l 10849 6516 l 10870 6517 l 10891 6518 l 10913 6518 l - 10934 6518 l 10955 6517 l 10976 6516 l 10996 6515 l 11016 6513 l - 11036 6511 l 11056 6509 l 11075 6506 l 11094 6503 l 11113 6500 l - 11132 6496 l 11151 6492 l 11171 6488 l 11191 6483 l 11212 6478 l - 11233 6472 l 11254 6466 l 11276 6459 l 11298 6452 l 11320 6445 l - 11341 6437 l 11362 6429 l 11383 6421 l 11402 6413 l 11421 6405 l - 11438 6396 l 11455 6388 l 11471 6379 l 11486 6371 l 11500 6363 l - 11517 6352 l 11533 6340 l 11548 6328 l 11563 6316 l 11577 6303 l - 11590 6289 l 11603 6275 l 11615 6261 l 11626 6246 l 11635 6232 l - 11644 6217 l 11652 6203 l 11659 6189 l 11665 6176 l 11670 6163 l - 11675 6150 l 11680 6135 l 11683 6120 l 11687 6104 l 11690 6087 l - 11692 6067 l 11694 6046 l 11696 6023 l 11697 5999 l 11698 5976 l - 11699 5955 l 11700 5939 l 11700 5930 l 11700 5926 l 11700 5925 l gs col0 s gr -% Polyline -gs clippath -5959 1456 m 5925 1575 l 5899 1454 l 5895 1589 l 5954 1591 l cp -clip -n 5925 1575 m 5926 1545 l 5928 1524 l 5929 1501 l 5931 1477 l 5934 1454 l - 5937 1433 l 5941 1413 l 5945 1396 l 5950 1380 l 5956 1365 l - 5963 1350 l 5969 1337 l 5977 1324 l 5986 1311 l 5996 1297 l - 6007 1283 l 6020 1268 l 6033 1254 l 6048 1239 l 6063 1225 l - 6080 1211 l 6097 1197 l 6114 1184 l 6132 1172 l 6150 1160 l - 6169 1148 l 6188 1138 l 6203 1129 l 6220 1121 l 6237 1112 l - 6255 1104 l 6274 1095 l 6293 1087 l 6314 1079 l 6335 1071 l - 6356 1063 l 6378 1055 l 6401 1048 l 6423 1041 l 6445 1034 l - 6467 1028 l 6488 1022 l 6509 1017 l 6529 1012 l 6549 1008 l - 6568 1004 l 6588 1000 l 6606 997 l 6625 994 l 6644 991 l - 6664 989 l 6684 987 l 6704 985 l 6724 984 l 6745 983 l - 6766 982 l 6788 982 l 6809 982 l 6830 983 l 6851 984 l - 6871 985 l 6891 987 l 6911 989 l 6931 991 l 6950 994 l - 6969 997 l 6988 1000 l 7007 1004 l 7026 1008 l 7046 1012 l - 7066 1017 l 7087 1022 l 7108 1028 l 7129 1034 l 7151 1041 l - 7173 1048 l 7195 1055 l 7216 1063 l 7237 1071 l 7258 1079 l - 7277 1087 l 7296 1095 l 7313 1104 l 7330 1112 l 7346 1121 l - 7361 1129 l 7375 1138 l 7392 1148 l 7408 1160 l 7423 1172 l - 7438 1184 l 7452 1197 l 7465 1211 l 7478 1225 l 7490 1239 l - 7501 1254 l 7510 1268 l 7519 1283 l 7527 1297 l 7534 1311 l - 7540 1324 l 7545 1337 l 7550 1350 l 7555 1365 l 7558 1380 l - 7562 1396 l 7565 1413 l 7567 1433 l 7569 1454 l 7571 1477 l - 7572 1501 l 7573 1524 l 7574 1545 l 7575 1561 l 7575 1570 l - 7575 1574 l 7575 1575 l gs col0 s gr gr - -% arrowhead -n 5959 1456 m 5925 1575 l 5899 1454 l col0 s -/Times-Roman-iso ff 300.00 scf sf -10575 825 m -gs 1 -1 sc (TASK) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 300.00 scf sf -10575 600 m -gs 1 -1 sc (EVENT MANAGEMENT) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5025 6000 m -gs 1 -1 sc (MANAGEMENT TASK) col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5250 5775 m -gs 1 -1 sc (CREATE EVENT) col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -4950 5550 m -gs 1 -1 sc (IF ATTACH COMMAND) col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 7575 m -gs 1 -1 sc (RELEASE SERIALIZE AND) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 7350 m -gs 1 -1 sc (IF CONTINUE COMMAND) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -5925 7800 m -gs 1 -1 sc (CONTINUE SEMAPHORES) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -10050 5250 m -gs 1 -1 sc (NOTIFY THE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -10050 5475 m -gs 1 -1 sc (DEBUGGEE CHANGES) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -10050 5700 m -gs 1 -1 sc (TO GDB) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 300.00 scf sf -6975 8175 m -gs 1 -1 sc (\(1\)->) dup sw pop 2 div neg 0 rm col13 sh gr -/Times-Roman-iso ff 300.00 scf sf -11025 4275 m -gs 1 -1 sc (\(2\)<-) dup sw pop 2 div neg 0 rm col1 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 2775 m -gs 1 -1 sc (WAIT FOR) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 3000 m -gs 1 -1 sc (SERIALIZE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 3225 m -gs 1 -1 sc (SEMAPHORE) dup sw pop 2 div neg 0 rm col0 sh gr -% Ellipse -n 18525 2925 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 18525 6450 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 18525 8250 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 18533 9976 1275 525 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 18511 4735 1275 525 0 360 DrawEllipse gs col0 s gr - -% Polyline -gs clippath -18597 2300 m 18525 2400 l 18542 2277 l 18492 2403 l 18547 2425 l cp -clip -n 18525 2400 m 18675 2025 l 18375 2025 l 18525 1650 l gs col0 s gr gr - -% arrowhead -n 18597 2300 m 18525 2400 l 18542 2277 l col0 s -% Polyline -gs clippath -18555 4080 m 18525 4200 l 18495 4080 l 18495 4215 l 18555 4215 l cp -clip -n 18525 3450 m 18525 4200 l gs col0 s gr gr - -% arrowhead -n 18555 4080 m 18525 4200 l 18495 4080 l col0 s -% Polyline -gs clippath -18555 7605 m 18525 7725 l 18495 7605 l 18495 7740 l 18555 7740 l cp -clip -n 18525 6975 m 18525 7725 l gs col0 s gr gr - -% arrowhead -n 18555 7605 m 18525 7725 l 18495 7605 l col0 s -% Polyline -gs clippath -18555 9330 m 18525 9450 l 18495 9330 l 18495 9465 l 18555 9465 l cp -clip -n 18525 8775 m 18525 9450 l gs col0 s gr gr - -% arrowhead -n 18555 9330 m 18525 9450 l 18495 9330 l col0 s -% Polyline -gs clippath -18555 5805 m 18525 5925 l 18495 5805 l 18495 5940 l 18555 5940 l cp -clip -n 18525 5250 m 18525 5925 l gs col0 s gr gr - -% arrowhead -n 18555 5805 m 18525 5925 l 18495 5805 l col0 s -/Times-Roman-iso ff 300.00 scf sf -18450 600 m -gs 1 -1 sc ( DEBUG AND BREAKPOINT) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 300.00 scf sf -18450 825 m -gs 1 -1 sc (EXCEPTION HANDLER) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 6900 m -gs 1 -1 sc (SEMAPHORE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 6450 m -gs 1 -1 sc (OR BREAKPOINT EXCEP,) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 6225 m -gs 1 -1 sc (IF SINGLE STEP) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 6675 m -gs 1 -1 sc (RELEASE WAKE-UP) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 8100 m -gs 1 -1 sc (WAIT FOR) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 8550 m -gs 1 -1 sc (SEMAPHORE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 8325 m -gs 1 -1 sc (CONTINUE) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -17700 1425 m -gs 1 -1 sc (RECEIVE EXCEPTION) col0 sh gr -/Times-Roman-iso ff 300.00 scf sf -17250 8850 m -gs 1 -1 sc (->\(1\)) dup sw pop 2 div neg 0 rm col13 sh gr -/Times-Roman-iso ff 300.00 scf sf -17175 6975 m -gs 1 -1 sc (<-\(2\)) dup sw pop 2 div neg 0 rm col1 sh gr -/Times-Roman-iso ff 300.00 scf sf -17250 3525 m -gs 1 -1 sc (->\(1\)) dup sw pop 2 div neg 0 rm col13 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 10275 m -gs 1 -1 sc (RETURN OF EXCEPTION) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 10050 m -gs 1 -1 sc (AND) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18525 9825 m -gs 1 -1 sc (RESTORE CONTEXT) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -18075 4950 m -gs 1 -1 sc (CONTEXT) col0 sh gr -/Times-Roman-iso ff 180.00 scf sf -17700 4725 m -gs 1 -1 sc (SAVE EXCEPTION ) col0 sh gr -% Polyline -60.000 slw -n 16275 75 m 16050 75 16050 10500 225 arcto 4 {pop} repeat - 16050 10725 20775 10725 225 arcto 4 {pop} repeat - 21000 10725 21000 300 225 arcto 4 {pop} repeat - 21000 75 16275 75 225 arcto 4 {pop} repeat - cp gs col0 s gr -$F2psEnd -rs diff --git a/doc/rgdb_specs/process.jpg b/doc/rgdb_specs/process.jpg deleted file mode 100644 index ee14024a6d3ec41128691b4cf6d5c9c5997ae53b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136532 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 diff --git a/doc/rgdb_specs/process.txt b/doc/rgdb_specs/process.txt deleted file mode 100644 index a296e15a97..0000000000 --- a/doc/rgdb_specs/process.txt +++ /dev/null @@ -1,2 +0,0 @@ -Figure: Remote debugger tasks and handlers. - (Not available in ASCII version of this document.) diff --git a/doc/rgdb_specs/revision.t b/doc/rgdb_specs/revision.t deleted file mode 100644 index 9751d77784..0000000000 --- a/doc/rgdb_specs/revision.t +++ /dev/null @@ -1,42 +0,0 @@ -@c -@c RTEMS Remote Debugger Server Specifications -@c -@c Written by: Eric Valette -@c Emmanuel Raguet -@c -@c -@c $Id$ -@c - -@chapter Document Revision History - -@b{Current release} : - -@itemize @bullet -@item Current applicable release is 2.0. -@end itemize - -@b{Existing releases} : - -@itemize @bullet -@item 0.1 : Released the 29/09/98. First draft of this document. - -@item 0.2 : Released the 05/10/98. Second draft version. - -@item 1.0 : Released the 08/10/98. Version Approved internally. - -@item 1.1 : Released the 13/13/98. Version Distributed for comments. - -@item 2.0 : Released the 01/11/98. Version including modifications related -to comments we have got from the RTEMS mailing list. It also contains a -more precise description of RGDBSD as we now have a first prototype, - -@end itemize - -@b{Planned releases} : - -@itemize @bullet -@item 2.1 Final specification release intended to include a second round -of comments, -@end itemize - diff --git a/doc/rgdb_specs/rgdb_specs.texi b/doc/rgdb_specs/rgdb_specs.texi deleted file mode 100644 index bfa2142f98..0000000000 --- a/doc/rgdb_specs/rgdb_specs.texi +++ /dev/null @@ -1,110 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@setfilename rgdb_specs.info -@setcontentsaftertitlepage -@syncodeindex vr fn -@synindex ky cp -@paragraphindent 0 -@c %**end of header - -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@c -@c Master file for the Getting Started (C) Guide -@c - -@include version.texi -@include common/setup.texi -@include common/rtems.texi - -@ifset use-ascii -@dircategory RTEMS On-Line Manual -@direntry -* RTEMS Remote Debugger Server Specifications: (rgdb_specs). -@end direntry -@end ifset - -@c -@c Title Page Stuff -@c - -@c -@c I don't really like having a short title page. --joel -@c -@c @shorttitlepage RTEMS Remote Debugger Server Specifications - -@setchapternewpage odd -@settitle RTEMS Remote Debugger Server Specifications -@titlepage -@finalout - -@title RTEMS Remote Debugger Server Specifications -@subtitle Edition @value{EDITION}, for @value{VERSION} -@sp 1 -@subtitle @value{UPDATED} -@author Emmanuel Raguet and Eric Valette, Canon Research Centre -@author On-Line Applications Research Corporation -@page -@include common/cpright.texi -@end titlepage - -@c This prevents a black box from being printed on "overflow" lines. -@c The alternative is to rework a sentence to avoid this problem. - -@include intro.texi -@include revision.texi -@include objectives.texi -@include gdbinternals.texi -@include interfacing.texi -@include comm.texi -@include daemon.texi -@include conclusion.texi - -@ifinfo -@node Top, Introduction, (dir), (dir) -@top rgdb_specs - -This is the online version of the RTEMS Remote Debugger Server Specifications. - -@contents - -@menu -* Introduction:: -* Document Revision History:: -* Objectives:: -* A Rapid Tour of GDB Internals:: -* Interfacing GDB with RTEMS as a Target:: -* Communication with GDB:: -* RTEMS Debugger Server Daemon:: -* Conclusion:: -@end menu - -@c * Command and Variable Index:: -@c * Concept Index:: -@end ifinfo -@c -@c -@c Need to copy the emacs stuff and "trailer stuff" (index, toc) into here -@c - -@c @node Command and Variable Index, Concept Index, Installing GCC AND NEWLIB, Top -@c @unnumbered Command and Variable Index - -@c There are currently no Command and Variable Index entries. - -@c @printindex fn - -@c @node Concept Index, , Command and Variable Index, Top -@c @unnumbered Concept Index - -@c There are currently no Concept Index entries. -@c @printindex cp - -@bye - diff --git a/doc/rgdb_specs/seqbreak.eps b/doc/rgdb_specs/seqbreak.eps deleted file mode 100644 index ef3cdb69cc..0000000000 --- a/doc/rgdb_specs/seqbreak.eps +++ /dev/null @@ -1,311 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: seq_break.eps -%%Creator: fig2dev Version 3.2 Patchlevel 1 -%%CreationDate: Tue Oct 13 14:00:22 1998 -%%For: valette@tri-yann (Eric Valette,,6891,) -%%Orientation: Portrait -%%BoundingBox: 0 0 522 1067 -%%Pages: 0 -%%BeginSetup -%%EndSetup -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save --40.0 1136.0 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog - -$F2psBegin -10 setmiterlimit -n -1000 19922 m -1000 -1000 l 10365 -1000 l 10365 19922 l cp clip - 0.06000 0.06000 sc -/Times-Roman ff 300.00 scf sf -7050 1350 m -gs 1 -1 sc (TARGET) col0 sh gr -/Times-Roman ff 300.00 scf sf -6825 1650 m -gs 1 -1 sc (DEPENDENT) col0 sh gr -/Times-Roman ff 300.00 scf sf -7275 1950 m -gs 1 -1 sc (PART) col0 sh gr -/Times-Roman ff 300.00 scf sf -975 1725 m -gs 1 -1 sc (INDEPENDENT) col0 sh gr -/Times-Roman ff 300.00 scf sf -1500 2025 m -gs 1 -1 sc (PART) col0 sh gr -/Times-Roman ff 300.00 scf sf -1350 1425 m -gs 1 -1 sc (TARGET) col0 sh gr -% Polyline -15.000 slw -n 6000 2400 m 6000 18900 l gs col0 s gr -% Polyline -n 3600 2400 m 3600 18900 l gs col0 s gr -% Polyline -7.500 slw -gs clippath -5857 14614 m 5996 14662 l 5849 14674 l 6007 14694 l 6015 14634 l cp -clip -n 3596 14362 m 5996 14662 l gs col0 s gr gr - -% arrowhead -n 5857 14614 m 5996 14662 l 5849 14674 l 5877 14647 l 5857 14614 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5855 16198 m 5994 16246 l 5847 16258 l 6005 16278 l 6013 16218 l cp -clip -n 3594 15946 m 5994 16246 l gs col0 s gr gr - -% arrowhead -n 5855 16198 m 5994 16246 l 5847 16258 l 5875 16231 l 5855 16198 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5853 16742 m 5992 16790 l 5845 16802 l 6003 16822 l 6011 16762 l cp -clip -n 3592 16490 m 5992 16790 l gs col0 s gr gr - -% arrowhead -n 5853 16742 m 5992 16790 l 5845 16802 l 5873 16775 l 5853 16742 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5857 10639 m 5996 10687 l 5849 10699 l 6007 10719 l 6015 10659 l cp -clip -n 3596 10387 m 5996 10687 l gs col0 s gr gr - -% arrowhead -n 5857 10639 m 5996 10687 l 5849 10699 l 5877 10672 l 5857 10639 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5867 11156 m 6006 11204 l 5859 11216 l 6017 11236 l 6025 11176 l cp -clip -n 3606 10904 m 6006 11204 l gs col0 s gr gr - -% arrowhead -n 5867 11156 m 6006 11204 l 5859 11216 l 5887 11189 l 5867 11156 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3746 11590 m 3599 11578 l 3738 11530 l 3580 11550 l 3588 11610 l cp -clip -n 5999 11278 m 3599 11578 l gs col0 s gr gr - -% arrowhead -n 3746 11590 m 3599 11578 l 3738 11530 l 3718 11563 l 3746 11590 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5855 7873 m 5994 7921 l 5847 7933 l 6005 7953 l 6013 7893 l cp -clip -n 3594 7621 m 5994 7921 l gs col0 s gr gr - -% arrowhead -n 5855 7873 m 5994 7921 l 5847 7933 l 5875 7906 l 5855 7873 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5853 8417 m 5992 8465 l 5845 8477 l 6003 8497 l 6011 8437 l cp -clip -n 3592 8165 m 5992 8465 l gs col0 s gr gr - -% arrowhead -n 5853 8417 m 5992 8465 l 5845 8477 l 5873 8450 l 5853 8417 l cp gs 0.00 setgray ef gr col0 s -% Polyline -30.000 slw -n 750 5625 m 9150 5625 l gs col0 s gr -% Polyline -n 825 12525 m 9225 12525 l gs col0 s gr -% Polyline -7.500 slw -gs clippath -5860 4386 m 5999 4434 l 5852 4446 l 6010 4466 l 6018 4406 l cp -clip -n 3599 4134 m 5999 4434 l gs col0 s gr gr - -% arrowhead -n 5860 4386 m 5999 4434 l 5852 4446 l 5880 4419 l 5860 4386 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3743 4813 m 3596 4801 l 3735 4753 l 3577 4773 l 3585 4833 l cp -clip -n 5996 4501 m 3596 4801 l gs col0 s gr gr - -% arrowhead -n 3743 4813 m 3596 4801 l 3735 4753 l 3715 4786 l 3743 4813 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3741 9894 m 3594 9882 l 3733 9834 l 3575 9854 l 3583 9914 l cp -clip -n 5994 9582 m 3594 9882 l gs col0 s gr gr - -% arrowhead -n 3741 9894 m 3594 9882 l 3733 9834 l 3713 9867 l 3741 9894 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3741 15519 m 3594 15507 l 3733 15459 l 3575 15479 l 3583 15539 l cp -clip -n 5994 15207 m 3594 15507 l gs col0 s gr gr - -% arrowhead -n 3741 15519 m 3594 15507 l 3733 15459 l 3713 15492 l 3741 15519 l cp gs 0.00 setgray ef gr col0 s -/Times-Roman ff 300.00 scf sf -3525 14775 m -gs 1 -1 sc (Wait for event...) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -6075 15300 m -gs 1 -1 sc (Notify a child change) col0 sh gr -/Times-Roman ff 300.00 scf sf -8475 15600 m -gs 1 -1 sc (Wait for command ...) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -6075 15000 m -gs 1 -1 sc (Debug Exception handler) col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 16950 m -gs 1 -1 sc (Wait for event...) dup sw pop neg 0 rm col0 sh gr -/Times-Bold ff 300.00 scf sf -3150 6525 m -gs 1 -1 sc (Continue process : first time) col0 sh gr -/Times-Bold ff 300.00 scf sf -5700 2925 m -gs 1 -1 sc (Set Breakpoint) dup sw pop neg 0 rm col0 sh gr -/Times-Bold ff 300.00 scf sf -2925 13425 m -gs 1 -1 sc (Continue process : next times) col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 9675 m -gs 1 -1 sc (Notify a child change) col0 sh gr -/Times-Roman ff 300.00 scf sf -8550 9975 m -gs 1 -1 sc (Wait for command ...) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -3525 11025 m -gs 1 -1 sc (Ask information) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 11325 m -gs 1 -1 sc (Give information) col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 11625 m -gs 1 -1 sc (...) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 8250 m -gs 1 -1 sc (Resume process) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 8625 m -gs 1 -1 sc (Wait for event...) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -2250 10650 m -gs 1 -1 sc (at address) col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 9375 m -gs 1 -1 sc (Breakpoint Except. handler) col0 sh gr -/Times-Roman ff 300.00 scf sf -4800 1650 m -gs 1 -1 sc (message exchange) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 4800 m -gs 1 -1 sc (...) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 4200 m -gs 1 -1 sc (Ask opcode at address) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 4575 m -gs 1 -1 sc (Send opcode ) col0 sh gr -/Times-Roman ff 300.00 scf sf -675 7650 m -gs 1 -1 sc (Write "DEBUG" opcode) col0 sh gr -/Times-Roman ff 300.00 scf sf -8025 9075 m -gs 1 -1 sc (DEBUG opcode) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -900 10425 m -gs 1 -1 sc (Write previous opcode) col0 sh gr -/Times-Roman ff 300.00 scf sf -2400 7875 m -gs 1 -1 sc (at address) col0 sh gr -/Times-Roman ff 300.00 scf sf -750 15900 m -gs 1 -1 sc (Write "DEBUG" opcode) col0 sh gr -/Times-Roman ff 300.00 scf sf -2400 16125 m -gs 1 -1 sc (at address) col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 14475 m -gs 1 -1 sc (Single Step command) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 16575 m -gs 1 -1 sc (Continue command) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 16950 m -gs 1 -1 sc (Resume process) col0 sh gr -$F2psEnd -rs diff --git a/doc/rgdb_specs/seqbreak.jpg b/doc/rgdb_specs/seqbreak.jpg deleted file mode 100644 index 2d31d9796d19a4f20f7f1350f166b56a17ab6437..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79883 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%0D$)9;cq>8VphihvFiW(PAjm<+J9}|%%Xf;0(90N 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 z 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 QhQC4&BE=twS^xhg09N0_uK)l5 diff --git a/doc/rgdb_specs/seqbreak.txt b/doc/rgdb_specs/seqbreak.txt deleted file mode 100644 index 1df1577f77..0000000000 --- a/doc/rgdb_specs/seqbreak.txt +++ /dev/null @@ -1,2 +0,0 @@ -Figure: Breakpoint and process execution. - (Not available in ASCII version of this document.) diff --git a/doc/rgdb_specs/seqdetach.eps b/doc/rgdb_specs/seqdetach.eps deleted file mode 100644 index 2a143977da..0000000000 --- a/doc/rgdb_specs/seqdetach.eps +++ /dev/null @@ -1,167 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: seq_detach.eps -%%Creator: fig2dev Version 3.2 Patchlevel 1 -%%CreationDate: Tue Oct 13 14:00:31 1998 -%%For: valette@tri-yann (Eric Valette,,6891,) -%%Orientation: Portrait -%%BoundingBox: 0 0 427 293 -%%Pages: 0 -%%BeginSetup -%%EndSetup -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save --72.0 362.0 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog - -$F2psBegin -10 setmiterlimit -n -1000 7022 m -1000 -1000 l 9307 -1000 l 9307 7022 l cp clip - 0.06000 0.06000 sc -/Times-Roman ff 300.00 scf sf -1200 1680 m -gs 1 -1 sc (INDEPENDENT) col0 sh gr -/Times-Roman ff 300.00 scf sf -1800 1950 m -gs 1 -1 sc (PART) col0 sh gr -/Times-Roman ff 300.00 scf sf -1575 1425 m -gs 1 -1 sc (TARGET) col0 sh gr -/Times-Roman ff 300.00 scf sf -6450 1680 m -gs 1 -1 sc (DEPENDENT) col0 sh gr -/Times-Roman ff 300.00 scf sf -6675 1350 m -gs 1 -1 sc (TARGET) col0 sh gr -/Times-Roman ff 300.00 scf sf -6900 1950 m -gs 1 -1 sc (PART) col0 sh gr -% Polyline -15.000 slw -n 3600 2400 m 3600 6000 l gs col0 s gr -% Polyline -n 6000 2400 m 6000 6000 l gs col0 s gr -% Polyline -7.500 slw -gs clippath -5861 3927 m 6000 3975 l 5853 3987 l 6011 4007 l 6019 3947 l cp -clip -n 3600 3675 m 6000 3975 l gs col0 s gr gr - -% arrowhead -n 5861 3927 m 6000 3975 l 5853 3987 l 5881 3960 l 5861 3927 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5861 5427 m 6000 5475 l 5853 5487 l 6011 5507 l 6019 5447 l cp -clip -n 3600 5175 m 6000 5475 l gs col0 s gr gr - -% arrowhead -n 5861 5427 m 6000 5475 l 5853 5487 l 5881 5460 l 5861 5427 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3747 4643 m 3600 4631 l 3739 4583 l 3581 4603 l 3589 4663 l cp -clip -n 6000 4331 m 3600 4631 l gs col0 s gr gr - -% arrowhead -n 3747 4643 m 3600 4631 l 3739 4583 l 3719 4616 l 3747 4643 l cp gs 0.00 setgray ef gr col0 s -/Times-Bold ff 300.00 scf sf -4800 2700 m -gs 1 -1 sc (Detach a process) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -2550 3750 m -gs 1 -1 sc (Detach a process) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -7200 4050 m -gs 1 -1 sc (Detach the process) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 4425 m -gs 1 -1 sc (Notify detach) col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 4800 m -gs 1 -1 sc (Resume process) col0 sh gr -/Times-Roman ff 300.00 scf sf -3450 5250 m -gs 1 -1 sc (Close connection) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -8100 5625 m -gs 1 -1 sc (Close connection) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -4800 1650 m -gs 1 -1 sc (messages exchange) dup sw pop 2 div neg 0 rm col0 sh gr -$F2psEnd -rs diff --git a/doc/rgdb_specs/seqdetach.jpg b/doc/rgdb_specs/seqdetach.jpg deleted file mode 100644 index a42f9e5d7a50e1d1f09413c41b64b8cfadc8613d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24799 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 z 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 diff --git a/doc/rgdb_specs/seqdetach.txt b/doc/rgdb_specs/seqdetach.txt deleted file mode 100644 index 88766a26c1..0000000000 --- a/doc/rgdb_specs/seqdetach.txt +++ /dev/null @@ -1,2 +0,0 @@ -Figure: Detach a process and close a connection. - (Not available in ASCII version of this document.) diff --git a/doc/rgdb_specs/seqinit.eps b/doc/rgdb_specs/seqinit.eps deleted file mode 100644 index 496cf69218..0000000000 --- a/doc/rgdb_specs/seqinit.eps +++ /dev/null @@ -1,204 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: seq_init.eps -%%Creator: fig2dev Version 3.2 Patchlevel 1 -%%CreationDate: Tue Oct 13 13:59:59 1998 -%%For: valette@tri-yann (Eric Valette,,6891,) -%%Orientation: Portrait -%%BoundingBox: 0 0 482 527 -%%Pages: 0 -%%BeginSetup -%%EndSetup -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save --56.0 596.0 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog - -$F2psBegin -10 setmiterlimit -n -1000 10922 m -1000 -1000 l 9958 -1000 l 9958 10922 l cp clip - 0.06000 0.06000 sc -/Times-Roman ff 300.00 scf sf -1200 1680 m -gs 1 -1 sc (INDEPENDENT) col0 sh gr -/Times-Roman ff 300.00 scf sf -1500 1350 m -gs 1 -1 sc (TARGET) col0 sh gr -/Times-Roman ff 300.00 scf sf -1650 2025 m -gs 1 -1 sc (PART) col0 sh gr -/Times-Roman ff 300.00 scf sf -7125 1350 m -gs 1 -1 sc (TARGET) col0 sh gr -/Times-Roman ff 300.00 scf sf -7275 1950 m -gs 1 -1 sc (PART) col0 sh gr -/Times-Roman ff 300.00 scf sf -6750 1650 m -gs 1 -1 sc (DEPENDENT) col0 sh gr -% Polyline -7.500 slw -gs clippath -5861 3927 m 6000 3975 l 5853 3987 l 6011 4007 l 6019 3947 l cp -clip -n 3600 3675 m 6000 3975 l gs col0 s gr gr - -% arrowhead -n 5861 3927 m 6000 3975 l 5853 3987 l 5881 3960 l 5861 3927 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3745 4380 m 3598 4368 l 3737 4320 l 3579 4340 l 3587 4400 l cp -clip -n 5998 4068 m 3598 4368 l gs col0 s gr gr - -% arrowhead -n 3745 4380 m 3598 4368 l 3737 4320 l 3717 4353 l 3745 4380 l cp gs 0.00 setgray ef gr col0 s -/Times-Roman ff 300.00 scf sf -2550 3750 m -gs 1 -1 sc (Open connection) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -7125 4050 m -gs 1 -1 sc (Accept connection) dup sw pop 2 div neg 0 rm col0 sh gr -% Polyline -15.000 slw -n 3600 2400 m 3600 9825 l gs col0 s gr -% Polyline -n 6000 2400 m 6000 9900 l gs col0 s gr -% Polyline -30.000 slw -n 975 5100 m 8925 5100 l gs col0 s gr -% Polyline -7.500 slw -gs clippath -5861 7002 m 6000 7050 l 5853 7062 l 6011 7082 l 6019 7022 l cp -clip -n 3600 6750 m 6000 7050 l gs col0 s gr gr - -% arrowhead -n 5861 7002 m 6000 7050 l 5853 7062 l 5881 7035 l 5861 7002 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5865 8399 m 6004 8447 l 5857 8459 l 6015 8479 l 6023 8419 l cp -clip -n 3604 8147 m 6004 8447 l gs col0 s gr gr - -% arrowhead -n 5865 8399 m 6004 8447 l 5857 8459 l 5885 8432 l 5865 8399 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3746 8815 m 3599 8803 l 3738 8755 l 3580 8775 l 3588 8835 l cp -clip -n 5999 8503 m 3599 8803 l gs col0 s gr gr - -% arrowhead -n 3746 8815 m 3599 8803 l 3738 8755 l 3718 8788 l 3746 8815 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3748 7709 m 3601 7697 l 3740 7649 l 3582 7669 l 3590 7729 l cp -clip -n 6001 7397 m 3601 7697 l gs col0 s gr gr - -% arrowhead -n 3748 7709 m 3601 7697 l 3740 7649 l 3720 7682 l 3748 7709 l cp gs 0.00 setgray ef gr col0 s -/Times-Bold ff 300.00 scf sf -4800 2850 m -gs 1 -1 sc (Connect on target) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Bold ff 300.00 scf sf -4800 5850 m -gs 1 -1 sc (Attach a process) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -3525 6825 m -gs 1 -1 sc (Attach a process) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 7125 m -gs 1 -1 sc (Stop the process) col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 7500 m -gs 1 -1 sc (Notify a child change) col0 sh gr -/Times-Roman ff 300.00 scf sf -6150 8550 m -gs 1 -1 sc (Give information) col0 sh gr -/Times-Roman ff 300.00 scf sf -3150 8850 m -gs 1 -1 sc (...) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -3525 8250 m -gs 1 -1 sc (Ask information) dup sw pop neg 0 rm col0 sh gr -/Times-Roman ff 300.00 scf sf -4800 2025 m -gs 1 -1 sc (messages exchange) dup sw pop 2 div neg 0 rm col0 sh gr -$F2psEnd -rs diff --git a/doc/rgdb_specs/seqinit.jpg b/doc/rgdb_specs/seqinit.jpg deleted file mode 100644 index 29714a181dd3dfb7276a09c13201428ffe045a0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34525 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�I4WCzsLBSM7oy$;>srOtZd)O;Hx`npQ{ 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 $@ - -swarch.texi: swarch.t - $(BMENU2) -p "Introduction" \ - -u "Top" \ - -n "Getting Started" < $< > $@ - -started.texi: started.t - $(BMENU2) -p "Software Architecture" \ - -u "Top" \ - -n "Commands" < $< > $@ - -commands.texi: commands.t - $(BMENU2) -p "Getting Started Attaching To The System" \ - -u "Top" \ - -n "Troubleshooting" < $< > $@ - -trouble.texi: trouble.t - $(BMENU2) -p "Commands Thread control" \ - -u "Top" \ - -n "Debug Session Example" < $< > $@ - -example.texi: example.t - $(BMENU2) -p "Troubleshooting Debug server not present" \ - -u "Top" \ - -n "" < $< > $@ - -EXTRA_DIST = commands.t example.t intro.t started.t swarch.t trouble.t - -CLEANFILES += rtems_gdb.info diff --git a/doc/rtems_gdb/commands.t b/doc/rtems_gdb/commands.t deleted file mode 100644 index 61800f60ee..0000000000 --- a/doc/rtems_gdb/commands.t +++ /dev/null @@ -1,51 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Commands - -The usual GDB commands are available to display or modify data structures and -machine registers, disassemble code, display source listings, set and reset -breakpoints, control the debuggee execution, etc. Refer to Debugging with GDB -for a complete documentation of the standard GDB commands. - -GDB 4.17 has been extended with a number of commands specifically -for multi-threaded debugging within a RTEMS host-target environment. These commands -are described in this section. - - -@section Host-target connection control - -@itemize @bullet -@item (gdb) setrpcmode sun : specifies the SUN RPC type. -@item (gdb) setdaemontype rdbg : specifies the RDBG debug server type. -@item (gdb) target rtems target-name : specifies the target type. -@end itemize - -@section System status information - -@itemize @bullet -@item (gdb) info threads : gives a list of all threads in the debuggee, -their names, identifiers and states. It also indicates which thread is -the target thread. -@end itemize - - -@section Thread control - -@itemize @bullet -@item (gdb) thread target [id] : allows the user to get/set the target thread. -The argument id is either the thread's symbolic name or its local identifier. -@item (gdb) thread detach [id...] : all stops (breakpoints) of some specified -thread(s) can be ignored using the thread detach command. Each time a detached -thread hits a breakpoint, RTEMS/GDB will automatically restart the debuggee -without passing control to the user. -@item (gdb) thread attach [id...] : (re)attach specified thread(s). -@end itemize - - - diff --git a/doc/rtems_gdb/example.t b/doc/rtems_gdb/example.t deleted file mode 100644 index 531e478465..0000000000 --- a/doc/rtems_gdb/example.t +++ /dev/null @@ -1,88 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Debug Session Example - -The following is a debug session. Note that some lines have been broken -to aviod formatting problems in the printed document. - -@example -GNU gdb 4.17 -Copyright 1998 Free Software Foundation, Inc. -GDB is free software, covered by the GNU General Public License, and -you are welcome to change it and/or distribute copies of it under -certain conditions. Type "show copying" to see the conditions. -There is absolutely no warranty for GDB. -Type "show warranty" for details. -This GDB was configured as --host=i686-pc-linux-gnu --target=i386-rtems. -(gdb) setrpcmode sun -(gdb) setdaemontype rdbg -(gdb) target rtems usnet-test -Attaching remote machine across net... -Connected to usnet-test. -Now the "run" command will start a remote process. -(gdb) file /buildr4/pc386/tests/debug.exe -Reading symbols from /buildr4/pc386/tests/debug.exe...done. -(gdb) attach 1 -Attaching program: /buildr4/pc386/tests/debug.exe pid 1 -0x22fe65 in enterRdbg () -(gdb) info threads -There are 8 threads: -Id. Name Detached Suspended -134283273 Rini No No <= current target thread -0x22fe65 in enterRdbg () -134283272 Evnt No No -_Thread_Dispatch () at /rtems4/cpukit/score/src/thread.c:315 -134283271 SPE2 No No -_Thread_Dispatch () at /rtems4/cpukit/score/src/thread.c:315 -134283270 SPE1 No No -_Thread_Handler () at /rtems4/cpukit/score/src/thread.c:1107 -134283269 RDBG No No -0x22fe65 in enterRdbg () -134283268 SCrx No No -_Thread_Dispatch () at /rtems4/cpukit/score/src/thread.c:315 -134283267 SCtx No No -_Thread_Dispatch () at /rtems4/cpukit/score/src/thread.c:315 -134283266 ntwk No No -_Thread_Dispatch () at /rtems4/cpukit/score/src/thread.c:315 -(gdb) b init.c:92 -Breakpoint 1 at 0x200180: file \ - /rtems4/c/src/tests/samples/debug/init.c, line 92. -(gdb) c -Continuing. -Thread 134283273 (Rini) has been deleted. -[Switching to Rtems thread 134283271 (Not suspended) \ - ( <= current target thread )] -Breakpoint 1, example2 (argument=4) at \ - /rtems4/c/src/tests/samples/debug/init.c:92 -92 tuto += tuti; -(gdb) b init.c:66 -Breakpoint 2 at 0x200128: file \ - /rtems4/c/src/tests/samples/debug/init.c, line 66. -(gdb) c -Continuing. -[Switching to Rtems thread 134283270 (Not suspended) \ - ( <= current target thread )] -Breakpoint 2, example1 (argument=4) at \ - /rtems4/c/src/tests/samples/debug/init.c:66 -66 toto += titi; -(gdb) c -Continuing. -[Switching to Rtems thread 134283271 (Not suspended) \ - ( <= current target thread )] -Breakpoint 1, example2 (argument=4) at \ - /rtems4/c/src/tests/samples/debug/init.c:92 -92 tuto += tuti; -(gdb) s -93 if (print_enable2) -(gdb) detach -Detaching program: /buildr4/pc386/tests/debug.exe pid 1 -Warning: the next command will be done localy! -If you want to restart another remote program, reuse the target command -(gdb) quit -@end example diff --git a/doc/rtems_gdb/intro.t b/doc/rtems_gdb/intro.t deleted file mode 100644 index 70178b2aef..0000000000 --- a/doc/rtems_gdb/intro.t +++ /dev/null @@ -1,22 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Introduction - -GDB 4.17 is a source-level symbolic debugger for RTEMS environment. -This version is an extension of GNU GDB version 4.17, adapted for the debugging -of RTEMS applications in a heterogeneous host-target environment. - -This paper documents @b{only} the RTEMS/GDB extensions to GNU -GDB 4.17, as well as its use in the RTEMS environment. The reader is assumed -to be familiar with GNU GDB. - -The RTEMS project would like to thank Emmanuel Raguet (raguet@@crf.canon.fr) -and Eric Valette (valette@@crf.canon.fr) of the Canon Research Centre -France S.A. for developing and documenting RTEMS/GDB and submitting it. - diff --git a/doc/rtems_gdb/rtems_gdb.texi b/doc/rtems_gdb/rtems_gdb.texi deleted file mode 100644 index 05c86f018c..0000000000 --- a/doc/rtems_gdb/rtems_gdb.texi +++ /dev/null @@ -1,106 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@setfilename rtems_gdb.info -@setcontentsaftertitlepage -@syncodeindex vr fn -@synindex ky cp -@paragraphindent 0 -@c %**end of header - -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@c -@c Master file for the Getting Started (C) Guide -@c - -@include version.texi -@include common/setup.texi -@include common/rtems.texi - -@ifset use-ascii -@dircategory RTEMS On-Line Manual -@direntry -* RTEMS/GDB User's Guide: (rtems_gdb). -@end direntry -@end ifset - -@c -@c Title Page Stuff -@c - -@c -@c I don't really like having a short title page. --joel -@c -@c @shorttitlepage RTEMS/GDB User's Guide - -@setchapternewpage odd -@settitle RTEMS/GDB User's Guide -@titlepage -@finalout - -@title RTEMS/GDB User's Guide -@subtitle Edition @value{EDITION}, for @value{VERSION} -@sp 1 -@subtitle @value{UPDATED} -@author Emmanuel Raguet and Eric Valette, Canon Research Centre -@author On-Line Applications Research Corporation -@page -@include common/cpright.texi -@end titlepage - -@c This prevents a black box from being printed on "overflow" lines. -@c The alternative is to rework a sentence to avoid this problem. - -@contents - -@include intro.texi -@include swarch.texi -@include started.texi -@include commands.texi -@include trouble.texi -@include example.texi - -@ifinfo -@node Top, Introduction, (dir), (dir) -@top rtems_gdb - -This is the online version of the RTEMS/GDB User's Guide. - -@menu -* Introduction:: -* Software Architecture:: -* Getting Started:: -* Commands:: -* Troubleshooting:: -* Debug Session Example:: -@end menu - -@c * Command and Variable Index:: -@c * Concept Index:: -@end ifinfo -@c -@c -@c Need to copy the emacs stuff and "trailer stuff" (index, toc) into here -@c - -@c @node Command and Variable Index, Concept Index, Installing GCC AND NEWLIB, Top -@c @unnumbered Command and Variable Index - -@c There are currently no Command and Variable Index entries. - -@c @printindex fn - -@c @node Concept Index, , Command and Variable Index, Top -@c @unnumbered Concept Index - -@c There are currently no Concept Index entries. -@c @printindex cp - -@bye - diff --git a/doc/rtems_gdb/started.t b/doc/rtems_gdb/started.t deleted file mode 100644 index c8b4bad3e9..0000000000 --- a/doc/rtems_gdb/started.t +++ /dev/null @@ -1,53 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - - -@chapter Getting Started - -This section describes the steps which are necessary to set up a -debugging session with RTEMS/GDB. - - -@section Compiling The System Components - -The components that need to be debugged have to be compiled with the -g option -in order the generated file to contain the required information for the debug -session. - - -@section Starting a debugging session - -After having launched GDB, the user must connect to the RTEMS target with the -following commands: - -@example -(gdb) setrpcmode sun -(gdb) setdaemontype rdbg -(gdb) target rtems target-name -@end example - -Then he can use the file GDB command to specify the binary to be debugged. - -This initialization phase can be written in a @code{``.gdbinit''} -file. Each time, the user will launch GDB, it will execute this initialization -sequence. - - -@section Attaching To The System - -The entire target system is viewed as a single multi-threaded process, -the identifier of which is 1. To attach, use: - -@example -(gdb) attach 1 -@end example - -When successfully attached, the user can control the execution of -the target system from the debugger. - - diff --git a/doc/rtems_gdb/swarch.t b/doc/rtems_gdb/swarch.t deleted file mode 100644 index 8e7eaf9840..0000000000 --- a/doc/rtems_gdb/swarch.t +++ /dev/null @@ -1,32 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - - -@chapter Software Architecture - -RTEMS/GDB host-target debugger is architectured around: - -@itemize @bullet -@item One debugger, running on the host. -@item One debug server, running on the target. -@end itemize - -The host debugger communicates with the debug server using Sun RPC -over UDP/IP (Ethernet). - -When opening a debugging session, the user takes the control over -the entire target system. The target system is viewed as a single multi-threaded -process. - -The debugger can observe the state of the system objects, without -stopping the entire system. However, breakpoints and stepping affect (stop) -the entire system. - -For a given target, only one single system debugging session is possible -at a time. - diff --git a/doc/rtems_gdb/trouble.t b/doc/rtems_gdb/trouble.t deleted file mode 100644 index 7ed7364425..0000000000 --- a/doc/rtems_gdb/trouble.t +++ /dev/null @@ -1,46 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - - -@chapter Troubleshooting - -This section describes symptoms in some situations where the debugger does not -work correctly, and it gives guidelines for resolving the problems encountered. - - -@section Target machine name unknown on the host - -RTEMS/GDB fails to connect to target machine named my_target: - -@example -(gdb) target rtems my_target - -Attaching remote machine across net... \ - Invalid hostname. Couldn't find remote host address. -@end example - -@i{==> Ask your system administrator to add an entry with the -Internet number of machine my_target in the file /etc/hosts on your host machine. } - - -@section Debug server not present - -The target rtems command fails: - -@example -(gdb) target rtems my_target - -Attaching remote machine across net... RPC timed out. Couldn't connect -to remote target -@end example - - -@i{==> Verify that the target system is properly configured, -and is running the debugging daemon and communication stack.} - -