⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc.patch

📁 早期freebsd实现
💻 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 + -