aboutsummaryrefslogtreecommitdiffstats
path: root/tools/debugger/pdb/readme
diff options
context:
space:
mode:
Diffstat (limited to 'tools/debugger/pdb/readme')
-rw-r--r--tools/debugger/pdb/readme105
1 files changed, 0 insertions, 105 deletions
diff --git a/tools/debugger/pdb/readme b/tools/debugger/pdb/readme
deleted file mode 100644
index 6ea537b404..0000000000
--- a/tools/debugger/pdb/readme
+++ /dev/null
@@ -1,105 +0,0 @@
-
-PDB 0.3.3
-http://www.cl.cam.ac.uk/netos/pdb
-
-Alex Ho
-August 2005
-
-
-This is the latest incarnation of the pervasive debugger.
-PDB is a remote stub for GDB. Running as a user-space
-application in domain 0, it can debug any other domain.
-
-
-+------+ tcp/ip +-------+
-| GDB |--------------| PDB |
-+------+ +-------+ +-------+
- | Dom 0 | | Dom U |
- +-------+---+-------+
- | Xen |
- +-------------------+
-
-Installation
-
-- Install OCaml 3.08 in domain 0.
- http://caml.inria.fr/download.en.html is a good place to start.
-
-- Build Xen with debugger support
- make domu_debug=y xen
-
-- (optional)
- Build the target domains with debugging symbols.
- make CONFIG_DEBUG_INFO=true CONFIG_FRAME_POINTER=false linux-2.6-xenU-build
-
- You can also change linux-2.6.12-xenU/Makefile
- CONFIG_CC_OPTIMIZE_FOR_SIZE from -O2 to -O
-
-- Build PDB
- (cd tools/debugger/libxendebug; make install)
- (cd tools/debugger/pdb; make)
-
-Usage
-
-- PDB does not currently support SMP. Please boot xen with "maxcpus=1"
-
-- Run PDB
- domain-0.xeno# ./pdb <port>
-
-- Run GDB
- hostname% gdb <xeno.bk>/dist/install/boot/vmlinux-syms-2.6.12-xenU
-
- (gdb) target remote domain-0.xeno:<port>
-
- At this point, you'll get an error message such as:
- Remote debugging using domain-0.xeno:5000
- 0x00000000 in ?? ()
- warning: shared library handler failed to enable breakpoint
- Although GDB is connected to PDB, PDB doesn't know which domain
- you'd like to debug, so it's just feeding GDB a bunch of zeros.
-
- (gdb) maint packet x context = domain <domid> <vcpu>
-
- This tells PDB that we'd like to debug a particular domain & vcpu.
- However, since we're sending the command directly to PDB, GDB doesn't
- know that we now have a proper target. We can force GDB to invalidate
- its register cache. This is optional; the next time the program
- stops GDB will query for the registers automatically.
-
- (gdb) flushreg
-
-
- the following gdb commands should work :)
-
- break
- step, stepi
- next, nexti
- continue
- print
-
-Process
-
- PDB can also debug a process running in a Linux 2.6 domain.
- You will need to patch the Linux 2.6 domain U tree to export some
- additional symbols for the pdb module
-
- % make -C linux-2.6-patches
-
- After running PDB in domain 0, insert the pdb module in dom u:
-
- % insmod linux-2.6-module/pdb.ko
-
- Load GDB with the appropriate symbols, and attach with
-
- (gdb) maint packet x context = process <domid> <pid>
-
- Read, write, and access watchpoint should also work for processes,
- use the "rwatch", "watch" and "awatch" gdb commands respectively.
-
- If you are having trouble with GDB 5.3 (i386-redhat-linux-gnu),
- try GDB 6.3 (configured with --target=i386-linux-gnu).
-
-
-To Do
-
-- watchpoints for domains
-- support for SMP