Bug#642762: xulrunner-6.0: console flooded with unaligned access messages on ia64 (IA-64/IPF/Itanium) platform

Émeric Maschino emeric.maschino at gmail.com
Mon Sep 26 21:10:20 UTC 2011


Mike,

2011/9/25 Mike Hommey <mh at glandium.org>:
> nsISupportsImpl.cpp:44 is:
>    while (entries->iid) {
>
> entries is 0x70004008fb8, and its type is a pointer to:
>
> struct QITableEntry
> {
>  const nsIID *iid;
>  PROffset32   offset;
> };
>
> I fail to see how this can be unaligned...
>
> What is the corresponding address of that particular SIGBUS?

Reporting and helping debugging unaligned access is new to me and I
can't find any decent howto on the web. So, I'm not sure to fully
understand what exactly you need :-(.

Do you simply want to check that the memory address of the SIGBUS is
indeed pointing to NS_TableDrivenQI()?

In an other debug session, here is what I've recorded:

(gdb) run
Starting program: /usr/lib/iceweasel/firefox-bin
[Thread debugging using libthread_db enabled]
[New Thread 0x700088c71e0 (LWP 4310)]
[New Thread 0x700091331e0 (LWP 4311)]

Program received signal SIGBUS, Bus error.
0x00000700033b3130 in NS_TableDrivenQI (aThis=0x70007174f40, entries=0x70004008f
b8, aIID=..., aInstancePtr=0x70007168c58) at /build/buildd-iceweasel_6.0.2-1-ia6
4-HBKkq9/iceweasel-6.0.2/build-xulrunner/xpcom/build/nsISupportsImpl.cpp:44
44	/build/buildd-iceweasel_6.0.2-1-ia64-HBKkq9/iceweasel-6.0.2/build-xulrun
ner/xpcom/build/nsISupportsImpl.cpp: Aucun fichier ou dossier de ce type.
	in /build/buildd-iceweasel_6.0.2-1-ia64-HBKkq9/iceweasel-6.0.2/build-xul
runner/xpcom/build/nsISupportsImpl.cpp
(gdb) x 0x700033b3130
0x700033b3130 <NS_TableDrivenQI(void*, QITableEntry const*, nsID const&, void**)
+48>:	0x44208809
(gdb) x 0x70004008fb8
0x70004008fb8 <_ZZN15nsSupportsArray14QueryInterfaceERK4nsIDPPvE5table>:	
0x0390ab74
(gdb) p entries
$1 = (const QITableEntry *) 0x70004008fb8
(gdb) p entries->iid
$2 = (const nsIID *) 0x7000390ab74
(gdb) p entries->offset
$3 = 0

Does it answer your question or not at all?

FYI, no unaligned access message is logged (neither in the console
/var/log/kern.log, /var/log/messages or /var/log/syslog) while in GDB.
Is this what you would like that I try to catch while running
Iceweasel in GDB?

     Émeric





More information about the pkg-mozilla-maintainers mailing list