forked from Imagelibrary/rtems
Base version.
This commit is contained in:
92
doc/rtems_gdb/Makefile
Normal file
92
doc/rtems_gdb/Makefile
Normal file
@@ -0,0 +1,92 @@
|
||||
#
|
||||
# COPYRIGHT (c) 1988-1998.
|
||||
# On-Line Applications Research Corporation (OAR).
|
||||
# All rights reserved.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
PROJECT=rtems_gdb
|
||||
DISTRIBUTION_LEVEL=public
|
||||
|
||||
include ../Make.config
|
||||
|
||||
all: html info ps
|
||||
|
||||
dirs:
|
||||
$(make-dirs)
|
||||
|
||||
COMMON_FILES=../common/cpright.texi ../common/setup.texi
|
||||
|
||||
GENERATED_FILES= \
|
||||
intro.t swarch.t started.t commands.t trouble.t example.t
|
||||
|
||||
|
||||
FILES=$(PROJECT).texi $(GENERATED_FILES)
|
||||
|
||||
INFOFILES=$(wildcard $(PROJECT) $(PROJECT)-*)
|
||||
|
||||
info: dirs $(PROJECT)
|
||||
#cp $(wildcard $(PROJECT) $(PROJECT)-*) $(INFO_INSTALL)
|
||||
# cp $(PROJECT) $(INFO_INSTALL)
|
||||
|
||||
$(PROJECT): $(FILES)
|
||||
$(MAKEINFO) $(PROJECT).texi
|
||||
|
||||
dvi: $(PROJECT).dvi
|
||||
ps: dirs $(PROJECT).ps
|
||||
|
||||
$(PROJECT).ps: $(PROJECT).dvi
|
||||
dvips -o $(PROJECT).ps $(PROJECT).dvi
|
||||
cp $(PROJECT).ps $(PS_INSTALL)
|
||||
|
||||
# run texi2dvi twice to generate the xref's properly.
|
||||
$(PROJECT).dvi: $(FILES)
|
||||
$(TEXI2DVI) $(PROJECT).texi
|
||||
texi2dvi $(PROJECT).texi
|
||||
|
||||
html: dirs $(FILES)
|
||||
-mkdir -p $(WWW_INSTALL)/$(PROJECT)
|
||||
$(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \
|
||||
$(PROJECT).texi
|
||||
|
||||
clean:
|
||||
rm -f *.o $(PROG) *.txt core
|
||||
rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE)
|
||||
rm -f $(PROJECT) $(PROJECT)-* $(GENERATED_FILES)
|
||||
rm -f *.fixed _* network.t
|
||||
|
||||
#
|
||||
# Process Automatically Generated Files
|
||||
#
|
||||
|
||||
intro.texi: intro.t Makefile
|
||||
$(BMENU) -p "Top" \
|
||||
-u "Top" \
|
||||
-n "" ${*}.t
|
||||
|
||||
swarch.texi: swarch.t Makefile
|
||||
$(BMENU) -p "Top" \
|
||||
-u "Top" \
|
||||
-n "" ${*}.t
|
||||
|
||||
started.texi: started.t Makefile
|
||||
$(BMENU) -p "Top" \
|
||||
-u "Top" \
|
||||
-n "" ${*}.t
|
||||
|
||||
commands.texi: commands.t Makefile
|
||||
$(BMENU) -p "Top" \
|
||||
-u "Top" \
|
||||
-n "" ${*}.t
|
||||
|
||||
trouble.texi: trouble.t Makefile
|
||||
$(BMENU) -p "Top" \
|
||||
-u "Top" \
|
||||
-n "" ${*}.t
|
||||
|
||||
example.texi: example.t Makefile
|
||||
$(BMENU) -p "Top" \
|
||||
-u "Top" \
|
||||
-n "" ${*}.t
|
||||
|
||||
51
doc/rtems_gdb/commands.t
Normal file
51
doc/rtems_gdb/commands.t
Normal file
@@ -0,0 +1,51 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-1998.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@section 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.
|
||||
|
||||
|
||||
@subsection Host-target connection control
|
||||
|
||||
@itemize
|
||||
@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
|
||||
|
||||
@subsection System status information
|
||||
|
||||
@itemize
|
||||
@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
|
||||
|
||||
|
||||
@subsection Thread control
|
||||
|
||||
@itemize
|
||||
@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
|
||||
|
||||
|
||||
|
||||
76
doc/rtems_gdb/example.t
Normal file
76
doc/rtems_gdb/example.t
Normal file
@@ -0,0 +1,76 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-1998.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@section Debug Session Example
|
||||
|
||||
@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=i386RTEMS".
|
||||
(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/c/src/exec/score/src/thread.c:315
|
||||
134283271 SPE2 No No
|
||||
_Thread_Dispatch () at /rtems4/c/src/exec/score/src/thread.c:315
|
||||
134283270 SPE1 No No
|
||||
_Thread_Handler () at /rtems4/c/src/exec/score/src/thread.c:1107
|
||||
134283269 RDBG No No
|
||||
0x22fe65 in enterRdbg ()
|
||||
134283268 SCrx No No
|
||||
_Thread_Dispatch () at /rtems4/c/src/exec/score/src/thread.c:315
|
||||
134283267 SCtx No No
|
||||
_Thread_Dispatch () at /rtems4/c/src/exec/score/src/thread.c:315
|
||||
134283266 ntwk No No
|
||||
_Thread_Dispatch () at /rtems4/c/src/exec/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
|
||||
18
doc/rtems_gdb/intro.t
Normal file
18
doc/rtems_gdb/intro.t
Normal file
@@ -0,0 +1,18 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-1998.
|
||||
@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.
|
||||
|
||||
57
doc/rtems_gdb/started.t
Normal file
57
doc/rtems_gdb/started.t
Normal file
@@ -0,0 +1,57 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-1998.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
|
||||
@section Getting Started
|
||||
|
||||
This section describes the steps which are necessary to set up a
|
||||
debugging session with RTEMS/GDB.
|
||||
|
||||
|
||||
@subsection 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.
|
||||
|
||||
|
||||
@subsection 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.
|
||||
|
||||
|
||||
@subsection 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.
|
||||
|
||||
|
||||
32
doc/rtems_gdb/swarch.t
Normal file
32
doc/rtems_gdb/swarch.t
Normal file
@@ -0,0 +1,32 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-1998.
|
||||
@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.
|
||||
|
||||
48
doc/rtems_gdb/trouble.t
Normal file
48
doc/rtems_gdb/trouble.t
Normal file
@@ -0,0 +1,48 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-1998.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
|
||||
@section Troubleshooting
|
||||
|
||||
This section describes symptoms in some situations where the debugger does not
|
||||
work correctly, and it gives guidelines for resolving the problems encountered.
|
||||
|
||||
|
||||
@subsection 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. }
|
||||
|
||||
|
||||
@subsection{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.}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user