breakpoints; thread/frame selection that should work; TODO: is slow

This commit is contained in:
T0b1
2023-06-08 01:07:57 +02:00
parent 78e7f5cca7
commit b393f3dd28
14 changed files with 1098 additions and 73 deletions

View File

@@ -37,6 +37,7 @@ namespace dbgui::backend
struct Frame
{
uint64_t ip;
size_t lldb_idx;
std::string display_name;
};
@@ -52,8 +53,8 @@ namespace dbgui::backend
void start() override;
bool step_into() override;
bool step_over() override;
bool step_into(bool source_step) override;
bool step_over(bool source_step) override;
bool step_out() override;
void cont() override;
@@ -63,8 +64,12 @@ namespace dbgui::backend
void remove_data_node(uint64_t id) override;
void add_breakpoint(uint64_t addr, size_t id) override;
bool add_breakpoint(const char *file, uint32_t line, size_t id) override;
void remove_breakpoint(size_t id) override;
void select_thread(uint16_t idx);
void select_frame(uint16_t idx);
private:
void run_msg_loop();
void wait_for_debug_events();
@@ -95,6 +100,7 @@ namespace dbgui::backend
std::vector<Thread> _threads = {};
std::vector<Frame> _frames = {};
uint16_t _selected_frame = 0;
uint16_t _selected_thread = 0;
util::DAG _data_dag = {};
std::vector<data::DataNode> _data_nodes = {};