From 631d00470da55ea5df85992cf731a25b48a59b8f Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:22:58 -0400 Subject: [PATCH] Handle an edge case in the dwarf code --- src/symbols/symbols_with_libdwarf.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/symbols/symbols_with_libdwarf.cpp b/src/symbols/symbols_with_libdwarf.cpp index 18e6b5d..03bd576 100644 --- a/src/symbols/symbols_with_libdwarf.cpp +++ b/src/symbols/symbols_with_libdwarf.cpp @@ -820,9 +820,14 @@ namespace libdwarf { if(vec_it != vec.begin()) { vec_it--; } - //vec_it->die.print(); - if(vec_it->die.pc_in_die(dwversion, pc)) { - retrieve_symbol_for_subprogram(vec_it->die, pc, dwversion, frame); + // If the vector has been empty this can happen + if(vec_it != vec.end()) { + //vec_it->die.print(); + if(vec_it->die.pc_in_die(dwversion, pc)) { + retrieve_symbol_for_subprogram(vec_it->die, pc, dwversion, frame); + } + } else { + CPPTRACE_ASSERT(vec.size() == 0, "Vec should be empty?"); } }