dtrace ustack kernel panic
maestro something
maestro82 at gmail.com
Sat Jul 30 20:15:14 UTC 2011
Hi,
This is i386, right ?
> I think the cause is that assembler routine panic_trigger does not
> establish the standard i386 frame. Basically, you need either this,
> or dwarf annotations, for gdb to be able to walk over the frame.
>
> You need to add the standard prologue
> pushl %ebp
> movl %esp,%ebp
> and standard epilogue
> leave
> to the function. No idea whether it will continue to operate correctly
> after.
>
my panic_trigger looks like this now:
/*
int
panic_trigger(int *tp)
*/
ENTRY(panic_trigger)
pushl %ebp
movl %esp,%ebp
xorl %eax, %eax
movl $0xdefacedd, %edx
lock
xchgl %edx, (%edi)
cmpl $0, %edx
je 0f
movl $0, %eax
leave
ret
0: movl $1, %eax
leave
ret
END(panic_trigger)
same result, (actually too same as the address in the stack trace is still
the same, is that possible?)
cheers
--m
More information about the freebsd-stable
mailing list