LibDebug: add DW_LNS_set_basic_block support

This adds support for the basic_block register to the Dwarf line
number state machine.
This commit is contained in:
spigwitmer 2021-05-02 14:02:14 -04:00 committed by Andreas Kling
parent bd68ca362b
commit 3a5f9b2f7e
Notes: sideshowbarker 2024-07-18 18:45:05 +09:00
2 changed files with 7 additions and 0 deletions

View file

@ -242,6 +242,10 @@ void LineProgram::handle_standard_opcode(u8 opcode)
m_address += delta; m_address += delta;
break; break;
} }
case StandardOpcodes::SetBasicBlock: {
m_basic_block = true;
break;
}
default: default:
dbgln("Unhandled LineProgram opcode {}", opcode); dbgln("Unhandled LineProgram opcode {}", opcode);
VERIFY_NOT_REACHED(); VERIFY_NOT_REACHED();
@ -262,6 +266,8 @@ void LineProgram::handle_special_opcode(u8 opcode)
} }
append_to_line_info(); append_to_line_info();
m_basic_block = false;
} }
void LineProgram::run_program() void LineProgram::run_program()

View file

@ -171,6 +171,7 @@ private:
size_t m_line { 0 }; size_t m_line { 0 };
size_t m_file_index { 0 }; size_t m_file_index { 0 };
bool m_is_statement { false }; bool m_is_statement { false };
bool m_basic_block { false };
Vector<LineInfo> m_lines; Vector<LineInfo> m_lines;
}; };