diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-09-07 18:12:26 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-09-07 18:12:26 +0000 |
commit | 8adcfb97ad106747ac5eb14d50c97540b288e693 (patch) | |
tree | e0d7b1b6828d2e8c7ffcd6f0f7c0c0cbcb61ac29 /gdb | |
parent | 4064305ec08e84f8857e65e3281e389a3dffed45 (diff) | |
download | gdb-8adcfb97ad106747ac5eb14d50c97540b288e693.zip gdb-8adcfb97ad106747ac5eb14d50c97540b288e693.tar.gz gdb-8adcfb97ad106747ac5eb14d50c97540b288e693.tar.bz2 |
* dbxread.c (process_one_symbol): If the value of an N_FUN for a
function is zero, use minimal symbols to get the address.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dbxread.c | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index aeac2c7..d8e50e4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Tue Sep 7 13:06:44 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c (process_one_symbol): If the value of an N_FUN for a + function is zero, use minimal symbols to get the address. + Mon Sep 6 15:01:57 1993 Jeffrey Wheat (cassidy@cygnus.com) * elfread.c: change elf32_symbol_type to elf_symbol_type diff --git a/gdb/dbxread.c b/gdb/dbxread.c index e50cd04..8c35def 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -1911,7 +1911,15 @@ process_one_symbol (type, desc, valu, name, section_offsets, objfile) previous function. This means that we can use the minimal symbol table to get the address. */ - if (type == N_GSYM || type == N_STSYM) + /* On solaris up to 2.2, the N_FUN stab gets relocated. + On Solaris 2.3, ld no longer relocates stabs (which + is good), and the N_FUN's value is now always zero. + We only provide this correction for functions, not for + all N_FUN symbols, because that is easiest and all + readonly variables seem to go in the .rodata on Solaris. */ + + if (type == N_GSYM || type == N_STSYM + || (type == N_FUN && valu == 0)) { struct minimal_symbol *m; int l = colon_pos - name; |