diff options
| author | Mark Wielaard <[email protected]> | 2009-07-09 00:37:06 +0200 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2009-07-09 00:37:06 +0200 |
| commit | 714f66a60f55dada62ac808cd5cffeddd1f4ad39 (patch) | |
| tree | 2817f70b7ce995f36636c5b4f94aeabca940564f /src/readelf.c | |
| parent | cfdd86ed929c137eaca5dd49cd266bb739c6cdbd (diff) | |
| parent | f735db16b52665f2324eff101f0e5cad861bfea2 (diff) | |
Merge branch 'at_data_member_location'
Diffstat (limited to 'src/readelf.c')
| -rw-r--r-- | src/readelf.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/readelf.c b/src/readelf.c index c8bb2f08..bc67c31b 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -5135,9 +5135,20 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) const char *valuestr = NULL; switch (attr) { + /* This case can take either a constant or a loclistptr. */ + case DW_AT_data_member_location: + if (form != DW_FORM_data4 && form != DW_FORM_data8) + { + printf (" %*s%-20s %" PRIxMAX "\n", + (int) (level * 2), "", dwarf_attr_string (attr), + (uintmax_t) num); + return DWARF_CB_OK; + } + /* else fallthrough */ + + /* These cases always take a loclistptr and no constant. */ case DW_AT_location: case DW_AT_data_location: - case DW_AT_data_member_location: case DW_AT_vtable_elem_location: case DW_AT_string_length: case DW_AT_use_location: |
