diff options
-rw-r--r-- | runtime/staprun/ChangeLog | 5 | ||||
-rw-r--r-- | runtime/staprun/symbols.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/runtime/staprun/ChangeLog b/runtime/staprun/ChangeLog index af2c647e..018e8024 100644 --- a/runtime/staprun/ChangeLog +++ b/runtime/staprun/ChangeLog @@ -1,3 +1,8 @@ +2007-07-02 Martin Hunt <hunt@redhat.com> + + * symbols.c (get_sections): Set data pointer to the lowest address + of any data section. + 2007-06-21 Martin Hunt <hunt@redhat.com> * relay.c (init_relayfs): Send message to check for bulkmode. diff --git a/runtime/staprun/symbols.c b/runtime/staprun/symbols.c index c8758c37..49755c5e 100644 --- a/runtime/staprun/symbols.c +++ b/runtime/staprun/symbols.c @@ -92,8 +92,10 @@ static int get_sections(char *name, char *data_start, int datalen) strdata += strlen(secname) + 1; /* These sections are used a lot so keep the values handy */ - if (!strcmp(secname, ".data")) - mod->data = sec->addr; + if (!strcmp(secname, ".data") || !strncmp(secname, ".rodata", 7)) { + if (mod->data == 0 || sec->addr < mod->data) + mod->data = sec->addr; + } if (!strcmp(secname, ".text")) mod->text = sec->addr; if (!strcmp(secname, ".gnu.linkonce.this_module")) |