bug-hurd
[Top][All Lists]
Advanced

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

Re: Race condition in Mach/Hurd?


From: Samuel Thibault
Subject: Re: Race condition in Mach/Hurd?
Date: Tue, 10 May 2011 14:04:23 +0200
User-agent: Mutt/1.5.12-2006-07-14

Samuel Thibault, le Tue 10 May 2011 13:34:07 +0200, a écrit :
> > 2) Uncompress it at /boot
> > Start the debugger with C-A-d. Does this work on an uncompressed image?
> > w 002c10c0 1
> > cont
> 
> There's a misunderstanding: w writes in the living kernel and has
> immediate non-permanent effect, not in /boot.
> 
> > and then, how to exit the debugger?
> 
> That's what cont is for.
> 
> > When should I start the kernel debuggger, before or after triggering:
> > 5040ee18 deallocating an invalid port 340, most probably a bug.
> 
> Before.

After setting the variable to 1, you'll automatically get into the
debugger when getting that message. Use trace/u to get a (numerical)
backtrace. Ah, but while writing that, I realize that you're not running
on Xen, and thus userland and kernelland addresses are intermixed (blame
multiboot), so trace will just not work for the user part. What you can
do instead is replace, in mach_port_deallocate and mach_port_destroy,
the SoftDebugger call with

i386_exception(EXC_BREAKPOINT, EXC_I386_SGL, 0);

to trigger a debugger breakpoint, or 

i386_exception(EXC_BAD_INSTRUCTION, EXC_I386_INVOP, 0);

to simply fake a SIGILL emission right at the point where the spurious
deallocation happens, so the resulting core dump can show you the
backtrace in gdb.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]