WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] remove obsolete debugger documentation

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] remove obsolete debugger documentation
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Wed, 15 Jun 2005 14:41:49 +0000
Delivery-date: Thu, 16 Jun 2005 02:01:46 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: Xen Development List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
ChangeSet 1.1724, 2005/06/15 15:41:49+01:00, ach61@xxxxxxxxxxxxxxxxxxxxxx

        remove obsolete debugger documentation



 XenDebugger-HOWTO |  297 ------------------------------------------------------
 1 files changed, 297 deletions(-)


diff -Nru a/docs/misc/XenDebugger-HOWTO b/docs/misc/XenDebugger-HOWTO
--- a/docs/misc/XenDebugger-HOWTO       2005-06-15 22:02:51 -04:00
+++ /dev/null   Wed Dec 31 16:00:00 196900
@@ -1,304 +0,0 @@
-Pervasive Debugging 
-===================
-
-Alex Ho (alex.ho at cl.cam.ac.uk)
-
-Introduction
-------------
-
-The pervasive debugging project is leveraging Xen to 
-debug distributed systems.  We have added a gdb stub
-to Xen to allow for remote debugging of both Xen and
-guest operating systems.  More information about the
-pervasive debugger is available at: http://www.cl.cam.ac.uk/netos/pdb
-
-
-Implementation
---------------
-
-The gdb stub communicates with gdb running over a serial line.
-The main entry point is pdb_handle_exception() which is invoked
-from:    pdb_key_pressed()    ('D' on the console)
-         do_int3_exception()  (interrupt 3: breakpoint exception)
-         do_debug()           (interrupt 1: debug exception)
-
-This accepts characters from the serial port and passes gdb
-commands to pdb_process_command() which implements the gdb stub
-interface.  This file draws heavily from the kgdb project and
-sample gdbstub provided with gdb.
-
-The stub can examine registers, single step and continue, and
-read and write memory (in Xen, a domain, or a Linux process'
-address space).  The debugger does not currently trace the 
-current process, so all bets are off if context switch occurs
-in the domain.
-
-
-Setup
------
-
- +-------+ telnet +-----------+ serial +-------+ 
- |  GDB  |--------|  nsplitd  |--------|  Xen  |
- +-------+        +-----------+        +-------+ 
-
-To run pdb, Xen must be appropriately configured and 
-a suitable serial interface attached to the target machine.
-GDB and nsplitd can run on the same machine.
-
-Xen Configuration
-
-  Add the "pdb=xxx" option to your Xen boot command line
-  where xxx is one of the following values:
-     com1    gdb stub should communicate on com1
-     com1H   gdb stub should communicate on com1 (with high bit set)
-     com2    gdb stub should communicate on com2
-     com2H   gdb stub should communicate on com2 (with high bit set)
-
-  Symbolic debugging infomration is quite helpful too:
-  xeno.bk/xen/arch/x86/Rules.mk
-    add -g to CFLAGS to compile Xen with symbols
-  xeno.bk/linux-2.4.27-xen-sparse/arch/xen/Makefile
-    add -g to CFLAGS to compile Linux with symbols
-
-  You may also want to consider dedicating a register to the
-  frame pointer (disable the -fomit-frame-pointer compile flag).
-
-  When booting Xen and domain 0, look for the console text 
-  "pdb: pervasive debugger" just before DOM0 starts up.
-
-Serial Port Configuration
-
-  pdb expects to communicate with gdb using the serial port.  Since 
-  this port is often shared with the machine's console output, pdb can
-  discriminate its communication by setting the high bit of each byte.
-
-  A new tool has been added to the source tree which splits 
-  the serial output from a remote machine into two streams: 
-  one stream (without the high bit) is the console and 
-  one stream (with the high bit stripped) is the pdb communication.
-
-  See:  xeno.bk/tools/misc/nsplitd
-
-  nsplitd configuration
-  ---------------------
-  hostname$ more /etc/xinetd.d/nsplit
-  service nsplit1
-  {
-        socket_type             = stream
-        protocol                = tcp
-        wait                    = no
-        user                    = wanda
-        server                  = /usr/sbin/in.nsplitd
-        server_args             = serial.cl.cam.ac.uk:wcons00
-        disable                 = no
-        only_from               = 128.232.0.0/17 127.0.0.1
-  }
-
-  hostname$ egrep 'wcons00|nsplit1' /etc/services
-  wcons00         9600/tcp        # Wanda remote console
-  nsplit1         12010/tcp       # Nemesis console splitter ports.
-
-  Note: nsplitd was originally written for the Nemesis project
-  at Cambridge.
-
-  After nsplitd accepts a connection on <port> (12010 in the above
-  example), it starts listening on port <port + 1>.  Characters sent 
-  to the <port + 1> will have the high bit set and vice versa for 
-  characters received.
-
-  You can connect to the nsplitd using
-  'tools/misc/xencons <host> <port>'
-
-GDB 6.0
-  pdb has been tested with gdb 6.0.  It should also work with
-  earlier versions.
-
-
-Usage
------
-
-1. Boot Xen and Linux
-2. Interrupt Xen by pressing 'D' at the console
-   You should see the console message: 
-   (XEN) pdb_handle_exception [0x88][0x101000:0xfc5e72ac]
-   At this point Xen is frozen and the pdb stub is waiting for gdb commands 
-   on the serial line.
-3. Attach with gdb
-   (gdb) file xeno.bk/xen/xen
-   Reading symbols from xeno.bk/xen/xen...done.
-   (gdb) target remote <hostname>:<port + 1>              /* contact nsplitd */
-   Remote debugging using serial.srg:12131
-   continue_cpu_idle_loop () at current.h:10
-   warning: shared library handler failed to enable breakpoint
-   (gdb) break __enter_scheduler
-   Breakpoint 1 at 0xfc510a94: file schedule.c, line 330.
-   (gdb) cont
-   Continuing.
-
-   Program received signal SIGTRAP, Trace/breakpoint trap.
-   __enter_scheduler () at schedule.c:330
-   (gdb) step
-   (gdb) step
-   (gdb) print next            /* the variable prev has been optimized away! */
-   $1 = (struct task_struct *) 0x0
-   (gdb) delete
-   Delete all breakpoints? (y or n) y
-4. You can add additional symbols to gdb
-   (gdb) add-sym xeno.bk/linux-2.4.27-xen0/vmlinux
-   add symbol table from file "xeno.bk/linux-2.4.27-xen0/vmlinux" at
-   (y or n) y
-   Reading symbols from xeno.bk/linux-2.4.27-xen0/vmlinux...done.
-   (gdb) x/s cpu_vendor_names[0]
-   0xc01530d2 <cpdext+62898>:   "Intel"
-   (gdb) break free_uid
-   Breakpoint 2 at 0xc0012250
-   (gdb) cont
-   Continuing.                                  /* run a command in domain 0 */
-
-   Program received signal SIGTRAP, Trace/breakpoint trap.
-   free_uid (up=0xbffff738) at user.c:77
-
-   (gdb) print *up
-   $2 = {__count = {counter = 0}, processes = {counter = 135190120}, files = {
-       counter = 0}, next = 0x395, pprev = 0xbffff878, uid = 134701041}
-   (gdb) finish
-   Run till exit from #0  free_uid (up=0xbffff738) at user.c:77
-
-   Program received signal SIGTRAP, Trace/breakpoint trap.
-   release_task (p=0xc2da0000) at exit.c:51
-   (gdb) print *p
-   $3 = {state = 4, flags = 4, sigpending = 0, addr_limit = {seg = 3221225472},
-     exec_domain = 0xc016a040, need_resched = 0, ptrace = 0, lock_depth = -1, 
-     counter = 1, nice = 0, policy = 0, mm = 0x0, processor = 0, 
-     cpus_runnable = 1, cpus_allowed = 4294967295, run_list = {next = 0x0, 
-       prev = 0x0}, sleep_time = 18995, next_task = 0xc017c000, 
-     prev_task = 0xc2f94000, active_mm = 0x0, local_pages = {next = 0xc2da0054,
-       prev = 0xc2da0054}, allocation_order = 0, nr_local_pages = 0, 
-     ...
-5. To resume Xen, enter the "continue" command to gdb.
-   This sends the packet $c#63 along the serial channel.
-
-   (gdb) cont
-   Continuing.
-
-Debugging Multiple Domains & Processes
---------------------------------------
-
-pdb supports debugging multiple domains & processes.  You can switch
-between different domains and processes within domains and examine
-variables in each.
-
-The pdb context identifies the current debug target.  It is stored
-in the xen variable pdb_ctx and defaults to xen.
-
-   target    pdb_ctx.domain    pdb_ctx.process
-   ------    --------------    ---------------
-    xen           -1                 -1
-  guest os      0,1,2,...            -1
-   process      0,1,2,...          0,1,2,...
-
-Unfortunately, gdb doesn't understand debugging multiple process
-simultaneously (we're working on it), so at present you are limited 
-to just one set of symbols for symbolic debugging.  When debugging
-processes, pdb currently supports just Linux 2.4.
-
-   define setup
-      file xeno-clone/xeno.bk/xen/xen
-      add-sym xeno-clone/xeno.bk/linux-2.4.27-xen0/vmlinux
-      add-sym ~ach61/a.out
-   end
-
-
-1. Connect with gdb as before.  A couple of Linux-specific 
-   symbols need to be defined.
-
-   (gdb) target remote <hostname>:<port + 1>              /* contact nsplitd */
-   Remote debugging using serial.srg:12131
-   continue_cpu_idle_loop () at current.h:10
-   warning: shared library handler failed to enable breakpoint
-   (gdb) set pdb_pidhash_addr = &pidhash
-   (gdb) set pdb_init_task_union_addr = &init_task_union
-
-2. The pdb context defaults to Xen and we can read Xen's memory.
-   An attempt to access domain 0 memory fails.
-  
-   (gdb) print pdb_ctx
-   $1 = {valid = 0, domain = -1, process = -1, ptbr = 1052672}
-   (gdb) print hexchars
-   $2 = "0123456789abcdef"
-   (gdb) print cpu_vendor_names
-   Cannot access memory at address 0xc0191f80
-
-3. Now we change to domain 0.  In addition to changing pdb_ctx.domain,
-   we need to change pdb_ctx.valid to signal pdb of the change.
-   It is now possible to examine Xen and Linux memory.
-
-   (gdb) set pdb_ctx.domain=0
-   (gdb) set pdb_ctx.valid=1
-   (gdb) print hexchars
-   $3 = "0123456789abcdef"
-   (gdb) print cpu_vendor_names
-   $4 = {0xc0158b46 "Intel", 0xc0158c37 "Cyrix", 0xc0158b55 "AMD", 
-     0xc0158c3d "UMC", 0xc0158c41 "NexGen", 0xc0158c48 "Centaur", 
-     0xc0158c50 "Rise", 0xc0158c55 "Transmeta"}
-
-4. Now change to a process within domain 0.  Again, we need to
-   change pdb_ctx.valid in addition to pdb_ctx.process.

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] remove obsolete debugger documentation, BitKeeper Bot <=