NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/49603: Single-stepping into syscall reboots -current/amd64 under qemu



The following reply was made to PR kern/49603; it has been noted by GNATS.

From: Andreas Gustafsson <gson%gson.org@localhost>
To: David Laight <david%l8s.co.uk@localhost>
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: kern/49603: Single-stepping into syscall reboots -current/amd64 under qemu
Date: Mon, 26 Jan 2015 10:54:58 +0200

 David Laight wrote:
 >  That file looks unlikely.
 >  Sounds more like a qemu bug to do with faulting on the system
 >  call entry/exit instruction when 'single step' is enabled.
 
 I agree that it looks like a qemu bug, but I'm still wondering if
 Christos' commit might have caused some subtle change to the behvior
 of either gdb or the kernel to make it trigger the bug when it didn't
 before.
 
 >  Which instructions are being stepped over?
 
   (gdb) break sync
   Breakpoint 1 at 0x4007b0
   (gdb) run
   Starting program: /bin/sync 
   Breakpoint 1, 0x00007f7ff743c360 in sync () from /lib/libc.so.12
   (gdb) x/4i $pc
   => 0x7f7ff743c360 <sync>:       mov    $0x24,%eax
      0x7f7ff743c365 <sync+5>:     mov    %rcx,%r10
      0x7f7ff743c368 <sync+8>:     syscall 
      0x7f7ff743c36a <sync+10>:    retq   
   (gdb) stepi
   0x00007f7ff743c365 in sync () from /lib/libc.so.12
   (gdb) stepi
   0x00007f7ff743c368 in sync () from /lib/libc.so.12
   (gdb) stepi
 
   >> NetBSD/x86 BIOS Boot, Revision 5.10 (from NetBSD 7.99.4)
   >> Memory: 639/129920 k
 
 >  Do you know if the syscall happens - ie is the
 >  error on the syscall entry, syscall exit or the
 >  following instruction.
 
 On entry.  I just confirmed this by running "gdb /bin/cat" and setting
 a breakpoint in read().  When I executed the syscall instruction with
 "stepi", the VM rebooted immediately rather than waiting for a line of
 input from stdin first.
 --
 Andreas Gustafsson, gson%gson.org@localhost
 


Home | Main Index | Thread Index | Old Index