diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-10-04 22:01:38 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-10-04 22:01:38 +0000 |
commit | 291b84ff00e7a6ee7eba489ee34e5a972fbec95f (patch) | |
tree | f3bd3fdaa89ee0f4aab5039ac2a3edbbfdde5320 /gdb/minsyms.c | |
parent | 4f5666c520cc7abbf4edb0a74d0aca4bdc65ec8b (diff) | |
download | gdb-291b84ff00e7a6ee7eba489ee34e5a972fbec95f.zip gdb-291b84ff00e7a6ee7eba489ee34e5a972fbec95f.tar.gz gdb-291b84ff00e7a6ee7eba489ee34e5a972fbec95f.tar.bz2 |
* minsyms.c (lookup_minimal_symbol_by_pc): Don't use mst_abs symbols.
Diffstat (limited to 'gdb/minsyms.c')
-rw-r--r-- | gdb/minsyms.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/gdb/minsyms.c b/gdb/minsyms.c index b8d7372..dbb4e79 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -253,9 +253,23 @@ lookup_minimal_symbol_by_pc (pc) objfile's minimal symbol table. See if it is the best one overall. */ - if ((best_symbol == NULL) || - (SYMBOL_VALUE_ADDRESS (best_symbol) < - SYMBOL_VALUE_ADDRESS (&msymbol[hi]))) + /* Skip any absolute symbols. This is apparently what adb + and dbx do, and is needed for the CM-5. There are two + known possible problems: (1) on ELF, apparently end, edata, + etc. are absolute. Not sure ignoring them here is a big + deal, but if we want to use them, the fix would go in + elfread.c. (2) I think shared library entry points on the + NeXT are absolute. If we want special handling for this + it probably should be triggered by a special + mst_abs_or_lib or some such. */ + while (hi >= 0 + && msymbol[hi].type == mst_abs) + --hi; + + if (hi >= 0 + && ((best_symbol == NULL) || + (SYMBOL_VALUE_ADDRESS (best_symbol) < + SYMBOL_VALUE_ADDRESS (&msymbol[hi])))) { best_symbol = &msymbol[hi]; } |