]> sourceware.org Git - systemtap.git/commitdiff
_stp_vma_match_vdso: Don't subtract build_id_len from notes_addr.
authorMark Wielaard <mjw@redhat.com>
Tue, 27 Sep 2011 14:21:15 +0000 (16:21 +0200)
committerMark Wielaard <mjw@redhat.com>
Tue, 27 Sep 2011 14:21:15 +0000 (16:21 +0200)
Older (pre-0.138) elfutils would erroneously return the address of the
build id note address with the length added. Newer ones never do this.
And we only support elfutils 0.142+ now anyway. Fixes vma_vdso.exp.

runtime/vma.c

index 4c51cfcaf056de728e63cc42655ac0b7a6582c77..ab06735d59ab99d1c4b75f64c483a0f8a100fa8c 100644 (file)
@@ -39,9 +39,10 @@ static void _stp_vma_match_vdso(struct task_struct *tsk)
          {
            unsigned long notes_addr;
            int all_ok = 1;
-           notes_addr = vdso_addr + m->build_id_offset - m->build_id_len;
+           notes_addr = vdso_addr + m->build_id_offset;
 #ifdef DEBUG_TASK_FINDER_VMA
-           _dbug("notes_addr %s: 0x%lx\n", m->name, notes_addr);
+           _dbug("notes_addr %s: 0x%lx + 0x%lx = 0x%lx (len: %x)\n", m->name,
+                 vdso_addr, m->build_id_offset, notes_addr, m->build_id_len);
 #endif
            for (j = 0; j < m->build_id_len; j++)
              {
@@ -53,7 +54,7 @@ static void _stp_vma_match_vdso(struct task_struct *tsk)
                if (rc || b != m->build_id_bits[j])
                  {
 #ifdef DEBUG_TASK_FINDER_VMA
-                   _dbug("darn, not equal (rc=%d) at %d (%d != %d)\n",
+                   _dbug("darn, not equal (rc=%d) at %d (0x%x != 0x%x)\n",
                          rc, j, b, m->build_id_bits[j]);
 #endif
                    all_ok = 0;
This page took 0.02907 seconds and 5 git commands to generate.