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 backtrace/14507] New: failed to compute dwarf2-CFA whenunwinder of caller frame is unknown.


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

             Bug #: 14507
           Summary: failed to compute dwarf2-CFA when unwinder of caller
                    frame is unknown.
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: backtrace
        AssignedTo: unassigned@sourceware.org
        ReportedBy: jojelino@gmail.com
    Classification: Unclassified


Created attachment 6598
  --> http://sourceware.org/bugzilla/attachment.cgi?id=6598
the source i tried to debug.

i think gdb 7.1 didn't complain like following. but i got unexpected `error
reading variable: can't compute CFA for this frame'
anyway, the following is mmap test debug session.
and in cygwin host, i tried to breakpoint mmap64(a.k.a mmap)
cygwin replaces its return address to sigbe so gdb cannot find its caller
frame.(hence sigbe of sigfe.s doesn't contain any cfi information.)
the problem is, it resulted in displaying incorrect frame info about the callee
frame which has correct dwarf-2 CFI, whose caller doesn't have CFI.


$ gdb --args a
GNU gdb (GDB) 7.5.50.20120806-cvs
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-cygwin".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...

warning: the current range check setting does not match the language.


warning: the current type check setting does not match the language.

Whether backtraces should continue past the entry point of a program is off.
Reading symbols from /tmp/a...done.
(gdb) b mmap64
Function "mmap64" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (mmap64) pending.
(gdb) r
Starting program: /tmp/a
[New Thread 5304.0x1d00]
[New Thread 5304.0x1428]

Breakpoint 1, mmap64 (
    addr=<error reading variable: can't compute CFA for this frame>,
    len=<error reading variable: can't compute CFA for this frame>,
    prot=<error reading variable: can't compute CFA for this frame>,
    flags=<error reading variable: can't compute CFA for this frame>,
    fd=<error reading variable: can't compute CFA for this frame>,
    off=<error reading variable: can't compute CFA for this frame>)
    at /tmp/winsup/winsup/cygwin/mmap.cc:795
795     {
(gdb) bt
#0  mmap64 (addr=<error reading variable: can't compute CFA for this frame>,
    len=<error reading variable: can't compute CFA for this frame>,
    prot=<error reading variable: can't compute CFA for this frame>,
    flags=<error reading variable: can't compute CFA for this frame>,
    fd=<error reading variable: can't compute CFA for this frame>,
    off=<error reading variable: can't compute CFA for this frame>)
    at /tmp/winsup/winsup/cygwin/mmap.cc:795
#1  0x610d2ca5 in _sigfe () from /usr/bin/cygwin1.dll
#2  0x00000003 in ?? ()
#3  0x00000012 in ?? ()
#4  0x00000003 in ?? ()
#5  0x00000000 in ?? ()
(gdb) info frame 0
Stack frame at 0x22ac10:
 eip = 0x61086420 in mmap64 (/tmp/winsup/winsup/cygwin/mmap.cc:795);
    saved eip 0x610d2ca5
 called by frame at 0x22ac1c
 source language c++.
 Arglist at 0x22ac08, args:
    addr=<error reading variable: can't compute CFA for this frame>,
    len=<error reading variable: can't compute CFA for this frame>,
    prot=<error reading variable: can't compute CFA for this frame>,
    flags=<error reading variable: can't compute CFA for this frame>,
    fd=<error reading variable: can't compute CFA for this frame>,
    off=<error reading variable: can't compute CFA for this frame>
 Locals at 0x22ac08, Previous frame's sp is 0x22ac10
 Saved registers:
  eip at 0x22ac0c
(gdb) info frame 1
Stack frame at 0x22ac1c:
 eip = 0x610d2ca5 in _sigbe; saved eip 0x3
 called by frame at 0x22ac20, caller of frame at 0x22ac10
 Arglist at 0x22ac14, args:
 Locals at 0x22ac14, Previous frame's sp is 0x22ac1c
 Saved registers:
  edx at 0x22ac0c, ebx at 0x22ac10, eip at 0x22ac18

-- 
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]