summaryrefslogtreecommitdiffstats
path: root/libdw/dwarf_diecu.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdw/dwarf_diecu.c')
-rw-r--r--libdw/dwarf_diecu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libdw/dwarf_diecu.c b/libdw/dwarf_diecu.c
index a62b8222..544d1a32 100644
--- a/libdw/dwarf_diecu.c
+++ b/libdw/dwarf_diecu.c
@@ -69,6 +69,8 @@ dwarf_diecu (die, result, address_sizep, offset_sizep)
determined any of the information. */
memset (result, '\0', sizeof (Dwarf_Die));
+ rwlock_rdlock (die->cu->dbg->lock);
+
result->addr = ((char *) die->cu->dbg->sectiondata[IDX_debug_info]->d_buf
+ DIE_OFFSET_FROM_CU_OFFSET (die->cu->start,
die->cu->offset_size));
@@ -79,5 +81,7 @@ dwarf_diecu (die, result, address_sizep, offset_sizep)
if (offset_sizep != NULL)
*offset_sizep = die->cu->offset_size;
+ rwlock_rdlock (die->cu->dbg->lock);
+
return result;
}