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

From: Emanuel Strobl <Emanuel.strobl_at_gmx.net>
Date: Thu, 18 Aug 2005 01:42:28 +0200
Am Mittwoch, 17. August 2005 21:29 CEST schrieb John Baldwin:
> On Wednesday 17 August 2005 10:43 am, Emanuel Strobl wrote:
[*schnip*]
> > Relocating the loader and the BTX
> > Starting the BTX loader
> >
> > 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:

Thanks for your attention! It's late here, I'll try to understand and see 
what I can do tomorrow.

Just for info, simply copying pxeboot from a 5.3-release (also real 
verified with 5.2.1 no 5.4 so far) DVD works. Bisides that I need sio 
support in pxeldr so I have to compile it my own. And of course I'd love 
to have the new comspeed config option :)

> % nm /usr/obj/usr/src/sys/boot/i386/loader/loader.sym | sort
> ...
> 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.

Expect to here from me the next 48 hours, tommorow I'm too busy as I could 
just see :(

Thanks again,

-Harry

Received on Wed Aug 17 2005 - 21:42:44 UTC

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