[Lazarus] IDE invocation of lhelp, probable endianness issue

Marco van de Voort marcov at stack.nl
Sun Aug 26 21:33:17 CEST 2012


On Wed, Aug 22, 2012 at 02:35:47PM +0200, Sven Barth wrote:
> >>
> >> Running lhelp from a shell using gdb gives me
> >>
> >> Program received signal SIGBUS, Bus error.
> >> [Switching to Thread 16384 (LWP 25970)]
> >> 0x0038c844 in _$CHMREADER$_Ll594 () at src/chmreader.pas:1144
> >> 1144                        ind:=LEToN(plongint(head)^);
> >
> > I'm not familiar with the chmreader code.
> > Please create a bug report.
> 
> At least it's a pointer dereference... so there must indeed be some 
> misalignment going on...

I think a lot of internal records are read that way. Arbitrary pointers are
pointed to records in buffers (decompressed datastructures), and then
iterated like this.

So there might be hundreds of such cases. Afaik alignment is hardly tested,
and endianess only quick.





More information about the Lazarus mailing list