🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #264

Sun dbx can't grok libgcc2.c stabs

#264
From: Kevin Rodgers
Date: Wed, 05 Aug 1992 18:24
166 lines
7118 bytes
I suspect this problem is the one concerning structure tags in DBX
output that's mentioned in the 'Actual Bugs We Haven't Fixed Yet' info
node, but since the 'Interoperation' node implies that there are other
problems with the DBX format, I thought I'd pass this along in case it
helps.

Version: 2.2.2
Configuration: --target=sun4
Machine: Sun SPARCstation SLC
OS: Sun OS 4.1.1

Symptom: When a C source file is compiled with the -g option to produce
an executable, and Sun's dbx is invoked on the executable, it produces
this output:

Reading symbolic information...
dbx: internal error: 
Your executable file contains corrupt symbol information:
The debugger expected to find char '=', but found char '<nul>'.

This problem originated in compilation, assembly, archiving, or linking.
Rebuilding your program often clears this problem.

To investigate further, try shell command nm(2) to see symbols:
   nm -opa yourprog >somefile
'yourprog' is your executable file or object file or archive.
Edit somefile, and search for ''.

Debugger unable to proceed.
recompile, reassemble, rearchive, or relink, and try again.
 
	when processing stabs from source /usr/local/gnu/gcc/./libgcc2.c in hello 
[end of 'dbx' output]

The 'nm -pa' output follows, as well as the 'gcc -E' output.  When I ran
gdb 4.6 on the executable and tried to ptype each LSYM type, there were
several errors: (1) the long unsigned int, short unsigned int, long long
unsigned int, long double, long unsigned int, and long double types all
caused a "parse error" message; and (2) the reg_class and longlong types
caused a "No symbol ... in current context" error, unless enum reg_class
and struct longlong were ptype'd instead.

'nm -pa' output:

00004000 d __DYNAMIC
00002020 t crt0.o
00002290 t hello.o
00002290 t gcc2_compiled.
00002290 - 00 0000    SO /home/rolling_stone/kevin/
00002290 - 00 0000    SO hello.c
00000000 - 00 0000  LSYM int:t1=r1;-2147483648;2147483647;
00000000 - 00 0000  LSYM char:t2=r2;0;127;
00000000 - 00 0000  LSYM long int:t3=r1;-2147483648;2147483647;
00000000 - 00 0000  LSYM unsigned int:t4=r1;0;-1;
00000000 - 00 0000  LSYM long unsigned int:t5=r1;0;-1;
00000000 - 00 0000  LSYM short int:t6=r1;-32768;32767;
00000000 - 00 0000  LSYM long long int:t7=r1;0;-1;
00000000 - 00 0000  LSYM short unsigned int:t8=r1;0;65535;
00000000 - 00 0000  LSYM long long unsigned int:t9=r1;0;-1;
00000000 - 00 0000  LSYM signed char:t10=r1;-128;127;
00000000 - 00 0000  LSYM unsigned char:t11=r1;0;255;
00000000 - 00 0000  LSYM float:t12=r1;4;0;
00000000 - 00 0000  LSYM double:t13=r1;8;0;
00000000 - 00 0000  LSYM long double:t14=r1;8;0;
00000000 - 00 0000  LSYM void:t15=15
00002298 - 00 0002 SLINE 
000022a4 - 00 0003 SLINE 
000022b4 - 00 0004 SLINE 
000022b4 - 00 0004 SLINE 
00002298 - 00 0000   FUN main:F1
00000014 - 00 0000 LBRAC 
00000024 - 00 0000 RBRAC 
000022c0 t __main.o
000022c0 t gcc2_compiled.
000040b4 d _initialized.6
000022c0 - 00 0000    SO /usr/local/gnu/gcc/
000022c0 - 00 0000    SO ./libgcc2.c
00000000 - 00 0000  LSYM int:t1=r1;-2147483648;2147483647;
00000000 - 00 0000  LSYM char:t2=r2;0;127;
00000000 - 00 0000  LSYM long int:t3=r1;-2147483648;2147483647;
00000000 - 00 0000  LSYM unsigned int:t4=r1;0;-1;
00000000 - 00 0000  LSYM long unsigned int:t5=r1;0;-1;
00000000 - 00 0000  LSYM short int:t6=r1;-32768;32767;
00000000 - 00 0000  LSYM long long int:t7=r1;0;-1;
00000000 - 00 0000  LSYM short unsigned int:t8=r1;0;65535;
00000000 - 00 0000  LSYM long long unsigned int:t9=r1;0;-1;
00000000 - 00 0000  LSYM signed char:t10=r1;-128;127;
00000000 - 00 0000  LSYM unsigned char:t11=r1;0;255;
00000000 - 00 0000  LSYM float:t12=r1;4;0;
00000000 - 00 0000  LSYM double:t13=r1;8;0;
00000000 - 00 0000  LSYM long double:t14=r1;8;0;
00000000 - 00 0000  LSYM void:t15=15
00000000 - 00 0000  LSYM reg_class:T16=eNO_REGS:0,GENERAL_REGS:1,FP_REGS:2,ALL_REGS:3,LIM_REG_CLASSES:4,;
00000000 - 00 0000  LSYM ptrdiff_t:t1
00000000 - 00 0000  LSYM size_t:t1
00000000 - 00 0000  LSYM wchar_t:t8
00000000 - 00 0000  LSYM longlong:T17=s8high:3,0,32;low:3,32,32;;
00000000 - 00 0000  LSYM long_long:t18=u8s:17,0,64;ll:7,0,64;;
00000000 - 00 0000  LSYM long_long:T18
00000000 - 00 0000  LSYM func_ptr:t19=*20=f15
000022c0 - 00 0000   FUN __do_global_dtors:F15
00000000 - 00 0000  GSYM _exit_dummy_ref:G21=*1
00002338 - 00 0000   FUN __do_global_ctors:F15
00002384 - 00 0000   FUN __main:F15
000023b0 t _exit.o
000023b0 t gcc2_compiled.
000023b0 - 00 0000    SO /usr/local/gnu/gcc/
000023b0 - 00 0000    SO ./libgcc2.c
00000000 - 00 0000  LSYM int:t1=r1;-2147483648;2147483647;
00000000 - 00 0000  LSYM char:t2=r2;0;127;
00000000 - 00 0000  LSYM long int:t3=r1;-2147483648;2147483647;
00000000 - 00 0000  LSYM unsigned int:t4=r1;0;-1;
00000000 - 00 0000  LSYM long unsigned int:t5=r1;0;-1;
00000000 - 00 0000  LSYM short int:t6=r1;-32768;32767;
00000000 - 00 0000  LSYM long long int:t7=r1;0;-1;
00000000 - 00 0000  LSYM short unsigned int:t8=r1;0;65535;
00000000 - 00 0000  LSYM long long unsigned int:t9=r1;0;-1;
00000000 - 00 0000  LSYM signed char:t10=r1;-128;127;
00000000 - 00 0000  LSYM unsigned char:t11=r1;0;255;
00000000 - 00 0000  LSYM float:t12=r1;4;0;
00000000 - 00 0000  LSYM double:t13=r1;8;0;
00000000 - 00 0000  LSYM long double:t14=r1;8;0;
00000000 - 00 0000  LSYM void:t15=15
00000000 - 00 0000  LSYM reg_class:T16=eNO_REGS:0,GENERAL_REGS:1,FP_REGS:2,ALL_REGS:3,LIM_REG_CLASSES:4,;
00000000 - 00 0000  LSYM ptrdiff_t:t1
00000000 - 00 0000  LSYM size_t:t1
00000000 - 00 0000  LSYM wchar_t:t8
00000000 - 00 0000  LSYM longlong:T17=s8high:3,0,32;low:3,32,32;;
00000000 - 00 0000  LSYM long_long:t18=u8s:17,0,64;ll:7,0,64;;
00000000 - 00 0000  LSYM long_long:T18
00000000 - 00 0000  LSYM func_ptr:t19=*20=f15
00000000 - 00 0000  GSYM _exit_dummy_decl:G1
00000000 - 00 0000  GSYM __CTOR_LIST__:G21=ar1;0;1;19
00000000 - 00 0000  GSYM __DTOR_LIST__:G21
000023b0 t -lg
000023b0 - 00 0000    SO libg.s
000023b0 - 00 ffff SLINE 
000026a8 T _etext
000040c0 D _edata
000040d0 B _end
00002020 T start
00002298 T _main
000040a8 D _environ
00002384 T ___main
000040b8 D __exit_dummy_decl
000040c0 B ___CTOR_LIST__
000040c8 B ___DTOR_LIST__
00002338 T ___do_global_ctors
000022c0 T ___do_global_dtors
000040b0 D __exit_dummy_ref
[end of 'nm -pa' output]

Command line: gcc -o hello -g hello.c

'gcc -E' output:
# 1 "hello.c"
main()
{
  printf("Hello\n");
}
[end of 'gcc -E' output]

Kevin Rodgers				kevin@traffic.den.mmc.com
Martin Marietta MS A16401		(303) 790-3971
116 Inverness Dr. East
Englewood CO 80112 USA			GO BUFFS!
Technical Details
Message-ID: <9208051824.AA07217@traffic>
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!traffic.den.mmc.com!kevin

Show Full Headers
Complete Article Headers
Newsgroups: gnu.gcc.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!traffic.den.mmc.com!kevin
From: kevin@traffic.den.mmc.com (Kevin Rodgers)
Subject: Sun dbx can't grok libgcc2.c stabs
Message-ID: <9208051824.AA07217@traffic>
Sender: gnulists@ai.mit.edu
Reply-To: kevin@traffic.den.mmc.com
Organization: GNUs Not Usenet
Distribution: gnu
Date: Wed, 5 Aug 1992 18:24:46 GMT
Approved: bug-gcc@prep.ai.mit.edu
Lines: 167