Created attachment 6598 [details] 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