dump
This commit is contained in:
@@ -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:
|
||||
{
|
||||
|
||||
13
todos.txt
13
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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user