aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/dwarf/dwarf2reader.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/common/dwarf/dwarf2reader.cc b/src/common/dwarf/dwarf2reader.cc
index 2c15ece6..63d1ffb7 100644
--- a/src/common/dwarf/dwarf2reader.cc
+++ b/src/common/dwarf/dwarf2reader.cc
@@ -504,8 +504,12 @@ void CompilationUnit::ProcessDIEs() {
dieptr += len;
- // Abbrev == 0 represents the end of a list of children.
+ // Abbrev == 0 represents the end of a list of children, or padding
+ // at the end of the compilation unit.
if (abbrev_num == 0) {
+ if (die_stack.size() == 0)
+ // If it is padding, then we are done with the compilation unit's DIEs.
+ return;
const uint64 offset = die_stack.top();
die_stack.pop();
handler_->EndDIE(offset);