RFC: dbxout_type rewrite

Devang Patel dpatel@apple.com
Thu Sep 15 18:26:00 GMT 2005


GCC routinely puts on the fly type description in other stabs. For  
example,

     0000006c - 00 0002  PSYM argv:p(0,2)=*(0,3)=*(0,4)=r(0,4);0;127;

Now when this PSYM stab is discarded by linker the useful type info  
is lost. This happens a lot in -feliminate-unused-debug-symbols mode.  
It happens even more in GCC-4.0 compared to GCC-3.3. Plus it is  
useful to put avoid on the fly type descriptions for the Essential  
Symbols work done here at Apple. And one small thing, it is less  
confusing to GDB when type is described first before being used. (And  
that is in -feliminate-unused-debug-symbols mode :)). So instead of  
generating these stabs

00000000 - 01 0003   FUN main:F(0,1)
00000000 - 00 0000  LSYM int:t(0,1)=r(0,1);-2147483648;2147483647;
00000068 - 00 0002  PSYM argc:p(0,1)
0000006c - 00 0002  PSYM argv:p(0,2)=*(0,3)=*(0,4)
00000000 - 00 0000  LSYM char:t(0,4)=r(0,4);0;127;
0000004c - 00 0000   FUN

It is desirable that GCC produces this

00000000 - 01 0003   FUN main:F(0,1)
00000068 - 00 0002  PSYM argc:p(0,1)
0000006c - 00 0002  PSYM argv:p(0,2)
00000000 - 00 0000  LSYM int:t(0,1)=r(0,1);-2147483648;2147483647;
00000000 - 00 0000  LSYM :t(0,2)=*(0,3)
00000000 - 00 0000  LSYM :t(0,3)=*(0,4)
00000000 - 00 0000  LSYM char:t(0,4)=r(0,4);0;127;
0000004c - 00 0000   FUN

I've now patch ready (based on apple-local-200502-branch) but it  
requires few bug fixes in darwin GDB. My simple question is : Is  
anybody interested in reviewing this GCC patch for acceptance in FSF  
GCC (4.1 or 4.2 or whenever) irrespective of whether associated GDB  
changes are contributed or not? Apple linker is updated to avoid 't'  
and 'T' LSYM stabs while removing chunks of stabs. I am not sure how  
big deal it is for FSF linker. And I do not know whether these linker  
changes will find its way in FSF linker or not.

I know, this is about stabs and not many folks care about stabs.  And  
on top of that it is related to -feliminate-unused-debug-symbols mode  
mainly. Plus issue of getting other tools on the same page. So I'd  
like to understand the interest before sending patch (and later on  
annoying ping messages :) ).

[ Do not say anything about switching to Dwarf. Other folks here at  
Apple are working on it. ]
-
Devang



More information about the Gcc mailing list