diff --git a/src/backend/lldb/lldb_backend.cpp b/src/backend/lldb/lldb_backend.cpp index f0f25f9..0c94ce3 100644 --- a/src/backend/lldb/lldb_backend.cpp +++ b/src/backend/lldb/lldb_backend.cpp @@ -191,7 +191,11 @@ void LLDBBackend::handle_state_change(lldb::StateType state) auto sel_thread = _process->GetSelectedThread(); auto change_reason = StateChangeReason::unknown; auto extra = 0; - switch (sel_thread.GetStopReason()) + auto stop_reason = sel_thread.GetStopReason(); + // step over seems to cause the reason to be eStopReasonPlanComplete, when pausing the stop reason seems to be eStopReasonSignal + spdlog::trace("Thread stopped because of reason {}", + static_cast(stop_reason)); + switch (stop_reason) { case eStopReasonBreakpoint: { diff --git a/todos.txt b/todos.txt index 02fa295..4a4f08b 100644 --- a/todos.txt +++ b/todos.txt @@ -4,3 +4,16 @@ - visualization for branches (draw arror if branch is taken (or in both cases?)) - allow (partial) path override for symbol source paths - check if classes with base classes work +- next item: array variable specifier +- search/show/open all files in the debug symbols of the executable +- allow setting breakpoint by name + manually set them with a textbox +- make stop/restart buttons work +- make it work if you open a file again that it doesn't break +- add a context menu option to display the type of a variable in the watch window +- auto-switch to disassembly if there is no source (auto-switch to source if there is one for the first time?) +- allow for copying + changing the display type for a variable in the watch window (esp. important for locals) +- when stopping, still keep the binary around (so like a workspace) +- add smth that detects if the binary changes and adds a button to reload/restart it +- automatically detect cycles in pointer and stop the UI recursion if so + +old imgui commit: a02315e1c4c80f94008779bfa0cc552542cb2f08 \ No newline at end of file diff --git a/watchsyntax.txt b/watchsyntax.txt index e69de29..1d017cb 100644 --- a/watchsyntax.txt +++ b/watchsyntax.txt @@ -0,0 +1,44 @@ +mystruct.ptr, mystruct.arrsize + +mystruct.ptr[$1].field.ptr[$2], mystruct.arrsize, mystruct.ptr[$1].field.arrsize + +mystruct.ptr.field + +mystruct.ptr[.arrsize].field.ptr[.arrsize] + +cast(mystruct.ptr).field, dbl + +%rax +%rbx + +(int[mystruct.arraysize]*)(mystruct.ptr) + +builtin functions? (e.g. casts) + + + = , + + = . | | | + + = \[|\] + + = [].. + + = (\^*) | | # + + = | . + + = $ + +$ for registers +# for special indices +% for various builtins + + + = [[x]] + + = + + = i8 | i16 | i32 | i64 | i128 | u8 | u16 | u32 | u64 | u128 | f32 | f64 | flt | dbl | str | cstr + +this is still missing the syntax to search in upper frames for variables \ No newline at end of file