June 12, 2013 [Bug 62] Name of nested functions is not available in debug info | ||||
---|---|---|---|---|
| ||||
http://bugzilla.gdcproject.org/show_bug.cgi?id=62 Johannes Pfau <johannespfau@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |johannespfau@gmail.com -- Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching all bug changes. |
February 17, 2014 [Bug 62] Name of nested functions is not available in debug info | ||||
---|---|---|---|---|
| ||||
http://bugzilla.gdcproject.org/show_bug.cgi?id=62 Johannes Pfau <johannespfau@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID --- Comment #1 from Johannes Pfau <johannespfau@gmail.com> 2014-02-17 11:58:24 GMT --- This is a bug in libbacktrace, reported here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60240 Iain, what was the reason we don't mark nested function declarations as TREE_PUBLIC again? It seems GCC only emits the mangled name into debug info for public functions. Test case: ----------- void main() { void a() { } a(); } ----------- compile with gdc test.d test.d -c -g objdump -W test.o > dwarf.info Search for "test.main.a". Then you'll see there's a DW_TAG_subprogram with "DW_AT_name" set, but "DW_AT_linkage_name" is not set. The TREE_PUBLIC check is in "dwarf2out.c:add_linkage_name": if (debug_info_level > DINFO_LEVEL_TERSE && (TREE_CODE (decl) == FUNCTION_DECL || TREE_CODE (decl) == VAR_DECL) && TREE_PUBLIC (decl) && !DECL_ABSTRACT (decl) && !(TREE_CODE (decl) == VAR_DECL && DECL_REGISTER (decl)) && die->die_tag != DW_TAG_member) { -- Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching all bug changes. |
Copyright © 1999-2021 by the D Language Foundation