Article View: gnu.g++.bug
Article #389collect.c can't handle extended symbols
From: Andrew Klossner
Date: Fri, 01 Sep 1989 23:28
Date: Fri, 01 Sep 1989 23:28
34 lines
1199 bytes
1199 bytes
collect.c doesn't deal correctly with extended symbols in COFF object
files, e.g., the output from 'gcc -g' or 'g++ -g0'.
The loop:
for (symindex = 0; symindex < symbols; symindex++ ) {
SYMENT symbol;
char *symbol_name;
extern char *ldgetname();
ldtbread(ldptr, symindex, &symbol);
...
}
should instead look like this:
symindex = 0;
while (symindex < symbols) {
SYMENT symbol;
char *symbol_name;
extern char *ldgetname();
ldtbread(ldptr, symindex, &symbol);
...
symindex += 1 + symbol.n_numaux;
}
so that "auxiliary" symbol table entries will be skipped.
This is necessary because ldgetname can core-dump on an auxiliary entry.
-=- Andrew Klossner (uunet!tektronix!frip.WV.TEK!andrew) [UUCP]
(andrew%frip.wv.tek.com@relay.cs.net) [ARPA]
Technical Details
Message-ID:
<4428@orca.WV.TEK.COM>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!wugate!uunet!zephyr.ens.tek.com!orca!frip!andrewShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!wugate!uunet!zephyr.ens.tek.com!orca!frip!andrew From: andrew@frip.WV.TEK.COM (Andrew Klossner) Newsgroups: gnu.g++.bug Subject: collect.c can't handle extended symbols Message-ID: <4428@orca.WV.TEK.COM> Date: 1 Sep 89 23:28:45 GMT Sender: nobody@orca.WV.TEK.COM Lines: 34