📄 gcc.patch
字号:
Recent versions of gcc have had a bug in how they emit debugginginformation for C++ methods (when using dbx-style stabs).This patch should fix the problem. Fix you can't fix gcc,you can alternatively define GCC_MANGLE_BUG when compling gdb/symtab.c.===================================================================RCS file: /rel/cvsfiles/devo/gcc/dbxout.c,vretrieving revision 1.53diff -c -r1.53 dbxout.c*** 1.53 1992/07/05 09:50:22--- dbxout.c 1992/07/09 07:00:33****************** 683,688 ****--- 683,689 ---- tree type_encoding; register tree fndecl; register tree last;+ char formatted_type_identifier_length[16]; register int type_identifier_length; if (methods == NULL_TREE)****************** 711,716 ****--- 712,719 ---- type_identifier_length = IDENTIFIER_LENGTH (type_encoding); + sprintf(formatted_type_identifier_length, "%d", type_identifier_length);+ if (TREE_CODE (methods) == FUNCTION_DECL) fndecl = methods; else if (TREE_VEC_ELT (methods, 0) != NULL_TREE)****************** 754,762 ****--- 757,769 ---- if (debug_name[0] == '_' && debug_name[1] == '_') { char *method_name = debug_name + 2;+ char *length_ptr = formatted_type_identifier_length; /* Get past const and volatile qualifiers. */ while (*method_name == 'C' || *method_name == 'V') method_name++;+ /* Skip digits for length of type_encoding. */+ while (*method_name == *length_ptr && *length_ptr)+ length_ptr++, method_name++; if (! strncmp (method_name, IDENTIFIER_POINTER (type_encoding), type_identifier_length))****************** 768,775 ****--- 775,786 ---- else if (debug_name[0] == '_' && debug_name[1] == '_') { char *ctor_name = debug_name + 2;+ char *length_ptr = formatted_type_identifier_length; while (*ctor_name == 'C' || *ctor_name == 'V') ctor_name++;+ /* Skip digits for length of type_encoding. */+ while (*ctor_name == *length_ptr && *length_ptr)+ length_ptr++, ctor_name++; if (!strncmp (IDENTIFIER_POINTER (type_encoding), ctor_name, type_identifier_length)) debug_name = ctor_name + type_identifier_length;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -