This commit is contained in:
T0b1
2024-05-12 01:25:11 +02:00
parent eb98d911f6
commit cdf015302a
3 changed files with 62 additions and 1 deletions

View File

@@ -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<int>(stop_reason));
switch (stop_reason)
{
case eStopReasonBreakpoint:
{

View File

@@ -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

View File

@@ -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<MyType*>(mystruct.ptr).field, dbl
%rax
%rbx
(int[mystruct.arraysize]*)(mystruct.ptr)
builtin functions? (e.g. casts)
<watch desc> = <data desc>, <format spec>
<data desc> = <data desc>.<data desc> | <array desc> | <ident> | <reg>
<array desc> = <ident>\[<arrsize spec>|<arrpath>\]
<arrsize spec> = [<arrpath>]..<arrpath>
<arrpath> = (\^*<ident path>) | <num literal> | #<num literal>
<ident path> = <ident> | <ident>.<ident path>
<reg> = $<ident>
$ for registers
# for special indices
% for various builtins
<format spec> = <type>[<num literal>[x<num literal>]]
<type> = <base type>
<base type> = 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