public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug backtrace/14507] New: failed to compute dwarf2-CFA when unwinder of caller frame is unknown.
@ 2012-08-22  9:54 jojelino at gmail dot com
  0 siblings, 0 replies; only message in thread
From: jojelino at gmail dot com @ 2012-08-22  9:54 UTC (permalink / raw)
  To: gdb-prs

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.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-08-22  9:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-22  9:54 [Bug backtrace/14507] New: failed to compute dwarf2-CFA when unwinder of caller frame is unknown jojelino at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).