This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug gdb/13079] New: i386-linux needs to implement frame_align,dfp-test.exp fails with recent gccs


http://sourceware.org/bugzilla/show_bug.cgi?id=13079

             Bug #: 13079
           Summary: i386-linux needs to implement frame_align,
                    dfp-test.exp fails with recent gccs
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gdb
        AssignedTo: unassigned@sourceware.org
        ReportedBy: dje@google.com
    Classification: Unclassified


dfp-test.exp is failing with recent gccs, i386-linux.
This is because gcc now optimizes frame alignment of leaf functions,
which matters for functions that use sse.
[and this isn't linux specific of course]

$ gdb -nx testsuite/gdb.base/dfp-test
[...]
(gdb) b arg0_128
Breakpoint 1 at 0x8048541: file ../../../src/gdb/testsuite/gdb.base/dfp-test.c,
line 123.
(gdb) r
Starting program:
/g3/gnu/sourceware/pure-gdb/build/obj64/gdb/testsuite/gdb.base/dfp-test

Breakpoint 1, arg0_128 (arg0=0.1, arg1=1.0, arg2=2.0, arg3=3.0, arg4=4.0,
    arg5=5.0) at ../../../src/gdb/testsuite/gdb.base/dfp-test.c:123
123       return arg0;
(gdb) p/x $sp
$1 = 0xffffd468
(gdb) call arg0_128 (1.2dl, 2.2dl, 3.2dl, 4.2dl, 5.2dl, 6.2dl)

Breakpoint 1, arg0_128 (arg0=1.2, arg1=2.2, arg2=3.2, arg3=4.2, arg4=5.2,
    arg5=6.2) at ../../../src/gdb/testsuite/gdb.base/dfp-test.c:123
123       return arg0;
The program being debugged stopped while in a function called from GDB.
Evaluation of the expression containing the function
(arg0_128) will be abandoned.
When the function is done executing, GDB will silently stop.
(gdb) fin
Run till exit from #0  arg0_128 (arg0=1.2, arg1=2.2, arg2=3.2, arg3=4.2,
    arg4=5.2, arg5=6.2) at ../../../src/gdb/testsuite/gdb.base/dfp-test.c:123

Program received signal SIGSEGV, Segmentation fault.
0x08048544 in arg0_128 (arg0=1.2, arg1=2.2, arg2=3.2, arg3=4.2, arg4=5.2,
    arg5=6.2) at ../../../src/gdb/testsuite/gdb.base/dfp-test.c:123
123       return arg0;
(gdb) x/i $pc
=> 0x8048544 <arg0_128+6>:      movaps 0x18(%ebp),%xmm0
(gdb) p/x $ebp
$2 = 0xffffd3e0
(gdb) disas
Dump of assembler code for function arg0_128:
   0x0804853e <+0>:     push   %ebp
   0x0804853f <+1>:     mov    %esp,%ebp
   0x08048541 <+3>:     mov    0x8(%ebp),%eax
=> 0x08048544 <+6>:     movaps 0x18(%ebp),%xmm0
   0x08048548 <+10>:    movaps %xmm0,(%eax)
   0x0804854b <+13>:    mov    0x8(%ebp),%eax
   0x0804854e <+16>:    pop    %ebp
   0x0804854f <+17>:    ret    $0x4
End of assembler dump.
(gdb)

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]