Hi,
I was looking into https://bugzilla.novell.com/show_bug.cgi?id=307781 -
basically, Nautilus crashes inside libeel in x86_64 at the start of a
varargs function. JPR helped me take disassemblies of both builds; this
is the start of the function for both versions:
Build1005 - crashes (built on bach.suse.de)
(gdb) disassemble eel_canvas_item_new
0x0000000000033c60 <eel_canvas_item_new+0>: mov %rbp,-0x18(%rsp)
0x0000000000033c65 <eel_canvas_item_new+5>: mov %r12,-0x10(%rsp)
0x0000000000033c6a <eel_canvas_item_new+10>: mov %rdi,%rbp
0x0000000000033c6d <eel_canvas_item_new+13>: mov %r13,-0x8(%rsp)
0x0000000000033c72 <eel_canvas_item_new+18>: mov %rbx,-0x20(%rsp)
0x0000000000033c77 <eel_canvas_item_new+23>: sub $0xf8,%rsp
0x0000000000033c7e <eel_canvas_item_new+30>: mov %rcx,0x38(%rsp)
0x0000000000033c83 <eel_canvas_item_new+35>: movzbl %al,%ecx
0x0000000000033c86 <eel_canvas_item_new+38>: mov %r8,0x40(%rsp)
0x0000000000033c8b <eel_canvas_item_new+43>: lea 0x0(,%rcx,4),%rax
0x0000000000033c93 <eel_canvas_item_new+51>: lea 0x20(%rip),%rcx #
0x33cba <eel_canvas_item_new+90>
^^^^ note the offset
0x0000000000033c9a <eel_canvas_item_new+58>: mov %r9,0x48(%rsp)
0x0000000000033c9f <eel_canvas_item_new+63>: mov %rsi,%r12
0x0000000000033ca2 <eel_canvas_item_new+66>: mov %rdx,%r13
0x0000000000033ca5 <eel_canvas_item_new+69>: sub %rax,%rcx
0x0000000000033ca8 <eel_canvas_item_new+72>: lea 0xcf(%rsp),%rax
0x0000000000033cb0 <eel_canvas_item_new+80>: jmpq *%rcx
0x0000000000033cb2 <eel_canvas_item_new+82>: movaps %xmm7,-0xf(%rax)
0x0000000000033cb6 <eel_canvas_item_new+86>: movaps %xmm6,-0x1f(%rax)
^^^^^ note how only xmm7
and xmm6 get used
0x0000000000033cba <eel_canvas_item_new+90>: callq 0x23cd8 <[EMAIL
PROTECTED]>
Build1010 - doesn't crash (built on roth.suse.de)
(gdb) disassemble eel_canvas_item_new
0x00002b91e8ee8ee0 <eel_canvas_item_new+0>: mov %rbp,-0x18(%rsp)
0x00002b91e8ee8ee5 <eel_canvas_item_new+5>: mov %r12,-0x10(%rsp)
0x00002b91e8ee8eea <eel_canvas_item_new+10>: mov %rdi,%rbp
0x00002b91e8ee8eed <eel_canvas_item_new+13>: mov %r13,-0x8(%rsp)
0x00002b91e8ee8ef2 <eel_canvas_item_new+18>: mov %rbx,-0x20(%rsp)
0x00002b91e8ee8ef7 <eel_canvas_item_new+23>: sub $0xf8,%rsp
0x00002b91e8ee8efe <eel_canvas_item_new+30>: mov %rcx,0x38(%rsp)
0x00002b91e8ee8f03 <eel_canvas_item_new+35>: movzbl %al,%ecx
0x00002b91e8ee8f06 <eel_canvas_item_new+38>: mov %r8,0x40(%rsp)
0x00002b91e8ee8f0b <eel_canvas_item_new+43>: lea 0x0(,%rcx,4),%rax
0x00002b91e8ee8f13 <eel_canvas_item_new+51>: lea 0x38(%rip),%rcx #
0x2b91e8ee8f52 <eel_canvas_item_new+114>
^^^^^^^^^^ different
offset
0x00002b91e8ee8f1a <eel_canvas_item_new+58>: mov %r9,0x48(%rsp)
0x00002b91e8ee8f1f <eel_canvas_item_new+63>: mov %rsi,%r12
0x00002b91e8ee8f22 <eel_canvas_item_new+66>: mov %rdx,%r13
0x00002b91e8ee8f25 <eel_canvas_item_new+69>: sub %rax,%rcx
0x00002b91e8ee8f28 <eel_canvas_item_new+72>: lea 0xcf(%rsp),%rax
0x00002b91e8ee8f30 <eel_canvas_item_new+80>: jmpq *%rcx
0x00002b91e8ee8f32 <eel_canvas_item_new+82>: movaps %xmm7,-0xf(%rax)
0x00002b91e8ee8f36 <eel_canvas_item_new+86>: movaps %xmm6,-0x1f(%rax)
0x00002b91e8ee8f3a <eel_canvas_item_new+90>: movaps %xmm5,-0x2f(%rax)
0x00002b91e8ee8f3e <eel_canvas_item_new+94>: movaps %xmm4,-0x3f(%rax)
0x00002b91e8ee8f42 <eel_canvas_item_new+98>: movaps %xmm3,-0x4f(%rax)
0x00002b91e8ee8f46 <eel_canvas_item_new+102>: movaps %xmm2,-0x5f(%rax)
0x00002b91e8ee8f4a <eel_canvas_item_new+106>: movaps %xmm1,-0x6f(%rax)
0x00002b91e8ee8f4e <eel_canvas_item_new+110>: movaps %xmm0,-0x7f(%rax)
^^^^^ xmm7 to xmm0 get
used
0x00002b91e8ee8f52 <eel_canvas_item_new+114>: callq 0x2b91e8ed8c58 <[EMAIL
PROTECTED]>
I'm wondering what might have changed. The bug has been there since
Beta1, but with the latest (post-Beta3) it doesn't happen. Did the
compiler change or something? The build hosts are different, but
shouldn't they produce the same results?
Thanks,
Federico
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]