diff options
author | Dave Brolley <brolley@redhat.com> | 2002-07-24 15:25:03 +0000 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2002-07-24 15:25:03 +0000 |
commit | 8e1a114b75cd91c110ca78b6eee8ad3df494ddab (patch) | |
tree | a46e1bc9caa939f3378d81d64b2c6d89aab9713a | |
parent | 0818c12a55c2aba820b8f7c7774bcdc698b757ee (diff) | |
download | ppe42-binutils-8e1a114b75cd91c110ca78b6eee8ad3df494ddab.tar.gz ppe42-binutils-8e1a114b75cd91c110ca78b6eee8ad3df494ddab.zip |
2002-07-24 Dave Brolley <brolley@redhat.com>
* corefile.c (core_create_function_syms): Use the end of the section
containing the symbol to compute max_vma.
-rw-r--r-- | gprof/ChangeLog | 5 | ||||
-rw-r--r-- | gprof/corefile.c | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gprof/ChangeLog b/gprof/ChangeLog index 1cbf37307e..1d726d1e69 100644 --- a/gprof/ChangeLog +++ b/gprof/ChangeLog @@ -1,3 +1,8 @@ +2002-07-24 Dave Brolley <brolley@redhat.com> + + * corefile.c (core_create_function_syms): Use the end of the section + containing the symbol to compute max_vma. + 2002-07-24 Nick Clifton <nickc@redhat.com> * po/sv.po: Updated Swedish translation. diff --git a/gprof/corefile.c b/gprof/corefile.c index fdebc88fe6..74e78f5eec 100644 --- a/gprof/corefile.c +++ b/gprof/corefile.c @@ -542,8 +542,15 @@ core_create_function_syms (cbfd) if (class == 't') symtab.limit->is_static = true; + /* Keep track of the minimum and maximum vma addresses used by all + symbols. When computing the max_vma, use the ending address of the + section containing the symbol, if available. */ min_vma = MIN (symtab.limit->addr, min_vma); - max_vma = MAX (symtab.limit->addr, max_vma); + if (core_syms[i]->section) + max_vma = MAX (core_syms[i]->section->vma + + core_syms[i]->section->_cooked_size - 1, max_vma); + else + max_vma = MAX (symtab.limit->addr, max_vma); /* If we see "main" without an initial '_', we assume names are *not* prefixed by '_'. */ |