SIGBUS using DBUS library on ARM

Frédéric DALLEAU frederic.dalleau at
Wed Nov 8 02:05:05 PST 2006


The problem doesn't appear with optimization disabled.

About arm, I just heard that a short must be accessed through a 
2-aligned address, an int through a 4-aligned and so on. Individual 
bytes can be accessed at any address.
In our case, we are reading a short on a 2-aligned address and this 
should work. So I guess the optimiser tried to put an integer read in 
I can post disassembled code if someone know how to read!


Thiago Macieira a écrit :
> Frédéric DALLEAU wrote:
>> #0  _dbus_marshal_write_basic (str=0x11090, insert_at=0, type=12,
>>     value=0xbef33cfe, byte_order=108, pos_after=0xbef33cdc)
>>     at dbus-marshal-basic.c:817
>> #1  0x4013d678 in _dbus_type_writer_write_basic_no_typecode (
>>     writer=0x4013d678, type=0, value=0xbef33cfe)
>>     at dbus-marshal-recursive.c:1586
>> #2  0x4013d760 in _dbus_type_writer_write_basic (writer=0xbef33ccc,
>> type=110,
>>     value=0xbef33cfe) at dbus-marshal-recursive.c:2291
>> #3  0x40141854 in dbus_message_iter_append_basic (iter=0xbef33cc4,
>> type=110, value=0xbef33cfe) at dbus-message.c:2134
>> #4  0x000085c8 in main (argc=69776, argv=0x0) at dbuscrash.c:9
> The value pointer is 0xbef33cfe, which is 2-aligned. Can you give us some 
> pointers on how ARM processors must align their data?
> PS: make sure you compile dbus without optimisation.
> PPS: please keep the list in CC.

More information about the dbus mailing list