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

[Xen-devel] Re: pdb entered even when set to none

To: Kip Macy <kmacy@xxxxxxxxxxxxxxx>
Subject: [Xen-devel] Re: pdb entered even when set to none
From: Alex Ho <Alex.Ho@xxxxxxxxxxxx>
Date: Tue, 08 Jun 2004 08:39:30 +0100
Cc: Xen list <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 08 Jun 2004 08:41:07 +0100
Envelope-to: steven.hand@xxxxxxxxxxxx
In-reply-to: Your message of "Mon, 07 Jun 2004 17:11:57 PDT." <20040607165603.M9981@xxxxxxxxxxxxxxxxxxxxx>
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
oops.  good point.  the alternative is to always run with
pdb initialized :)

i'll check in a fix later this morning.

.a


-- begin message
 
 In traps.c pdb_handle_exception is called on an int3:
 
 asmlinkage void do_int3(struct pt_regs *regs, long error_code)
 {
     struct task_struct *p = current;
     struct guest_trap_bounce *gtb =
 guest_trap_bounce+smp_processor_id();
     trap_info_t *ti;
 
     if ( pdb_handle_exception(3, regs) == 0 )
         return;
 <...>
 
 It in turn goes through some elaborate checks that don't evaluate to
 true when FreeBSD panics:
 
 <...>
     if ( exceptionVector == 3 &&
         (xen_regs->xcs & 3) == 3 &&
         xen_regs->eip != pdb_system_call_next_addr + 1)
     {
         TRC(printf("pdb: user bkpt (0x%x) at 0x%x:0x%lx:0x%lx\n",
                   exceptionVector, xen_regs->xcs & 3, cr3,
 xen_regs->eip));
        return 1;
     }
 
     /*
      * If PDB didn't set the breakpoint, is not single stepping,
      * is not entering a system call in a domain,
      * the user didn't press the magic debug key,
      * then we don't handle the exception.
      */
     bkpt = pdb_bkpt_search(cr3, xen_regs->eip - 1);
     if ( (bkpt == NULL) &&
          !pdb_stepping &&
         !pdb_system_call &&
         xen_regs->eip != pdb_system_call_next_addr + 1 &&
         (exceptionVector != KEYPRESS_EXCEPTION) &&
         xen_regs->eip < 0xc0000000)                   /* xenolinux for
 now! */
     {
         TRC(printf("pdb: user bkpt (0x%x) at 0x%lx:0x%lx\n",
                   exceptionVector, cr3, xen_regs->eip));
        return 1;
     }
 <...>
 
 As far as I can tell, what you should be doing is returning 1
 immediately if pdb_initialized is equal to zero.
 
 Thanks.
 
 
                                -Kip
 
 
 
-- end message


-------------------------------------------------------
This SF.Net email is sponsored by: GNOME Foundation
Hackers Unite!  GUADEC: The world's #1 Open Source Desktop Event.
GNOME Users and Developers European Conference, 28-30th June in Norway
http://2004/guadec.org
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel

<Prev in Thread] Current Thread [Next in Thread>