Re: BTX failure [Was: Re: pxeboot problems with BETA2]

From: Emanuel Strobl <Emanuel.strobl_at_gmx.net>
Date: Thu, 18 Aug 2005 23:26:12 +0200
[...]
> > int=00000006  err=00000000  efl=00010202  eip=00023c21
> > eax=00000000  ebx=000384e0  ecx=000384e0  edx=00000001
> > esi=00001000  edi=00000029  ebp=00086770  esp=00086758
> > cs=002b  ds=0033  es=0033    fs=0033  gs=0033  ss=0033
> > cs:eip=0f 4f c2 a3 c8 7d 03 00-8d 41 0c c7 41 04 fd 44
> >        ff 55 89 39 c6 44 39 ff-fe 83 c4 0c 5b 5e 5f 5d
> > ss:esp=b4 7d 03 00 29 00 00 00-00 10 00 00 00 00 00 00
> >        83 57 02 00 02 00 00 00-a0 67 08 00 98 1c 02 00
> > BTX halted
> >
> > Any clue? Regarding cvsweb nothing changed recently, and I had net4501
> > boxes pxebooting fine with FreeBSD 5.3.....
>
> Hmm.  Int 6 is an invalid opcode exception:
>
> 00000000  0F4FC2            cmovg eax,edx
> 00000003  A3C87D0300        mov [0x37dc8],eax
> 00000008  8D410C            lea eax,[ecx+0xc]
> 0000000B  C74104FD44FF55    mov dword [ecx+0x4],0x55ff44fd
> 00000012  8939              mov [ecx],edi
> 00000014  C64439FFFE        mov byte [ecx+edi-0x1],0xfe
> 00000019  83C40C            add esp,byte +0xc
> 0000001C  5B                pop ebx
> 0000001D  5E                pop esi
> 0000001E  5F                pop edi
> 0000001F  5D                pop ebp
>
> I'm guessing that there's been a stack overflow or some such.  Your eip
> is in the loader.  You can try using the loader.sym from your loader
> binary to look up that eip address.  In the loader here on my laptop
> it's in the write function:
>
> % nm /usr/obj/usr/src/sys/boot/i386/loader/loader.sym | sort

Hmm, thanks fot that detailed explanation, but it's still beond my level :(
How Do I get a loader.sym? Like you told me I rebuilt libstand with 
DEBUG_FLAGS=-g and also /sys/boot but I don't habe such a file...

Thanks,

-Harry

> ...
> 00023b9c T readdirfd
> 00023c14 T write
> 00023d18 T lseek
>
> If you want to be able to use gdb, then rebuild libstand with debugging
> (make DEBUG_FLAGS=-g) and rebuild all of /sys/boot with debugging (make
> DEBUG_FLAGS=-g).  You can then
> use /usr/obj/usr/src/sys/boot/i386/pxeldr/pxeboot for your pxeboot and
> you can run gdb on /usr/obj/usr/src/sys/boot/i386/loader/loader.sym and
> you can do listings of the addresses for eip, etc.

Received on Thu Aug 18 2005 - 19:26:29 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:41 UTC