summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--runtime/staprun/ChangeLog5
-rw-r--r--runtime/staprun/symbols.c6
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"))