summaryrefslogtreecommitdiff
path: root/plugins/stack_render_layer
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2025-06-19 16:23:33 -0400
committerGlenn Smith <glenn@vector35.com>2025-07-01 12:52:08 -0400
commit2ae357a4fffd81763e24a0c10dc3736ed8d387dd (patch)
tree81eb57ddd5e2f267cccf1fc67b8112983f715206 /plugins/stack_render_layer
parentdc9ddca46f19e31384e4e30863570a8552e4bd8c (diff)
Make StackRenderLayer not wait for IL generation
Diffstat (limited to 'plugins/stack_render_layer')
-rw-r--r--plugins/stack_render_layer/plugin.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/plugins/stack_render_layer/plugin.cpp b/plugins/stack_render_layer/plugin.cpp
index 24420ceb..5408118a 100644
--- a/plugins/stack_render_layer/plugin.cpp
+++ b/plugins/stack_render_layer/plugin.cpp
@@ -40,17 +40,22 @@ public:
continue;
}
- // Grab stack offset value from function
- auto stackOffset = block->GetFunction()->GetRegisterValueAtInstruction(
- block->GetArchitecture(),
- line.addr,
- block->GetArchitecture()->GetStackPointerRegister()
- );
- auto stackOffsetAfter = block->GetFunction()->GetRegisterValueAfterInstruction(
- block->GetArchitecture(),
- line.addr,
- block->GetArchitecture()->GetStackPointerRegister()
- );
+ RegisterValue stackOffset;
+ RegisterValue stackOffsetAfter;
+ if (block->GetFunction()->GetMediumLevelILIfAvailable())
+ {
+ // Grab stack offset value from function
+ stackOffset = block->GetFunction()->GetRegisterValueAtInstruction(
+ block->GetArchitecture(),
+ line.addr,
+ block->GetArchitecture()->GetStackPointerRegister()
+ );
+ stackOffsetAfter = block->GetFunction()->GetRegisterValueAfterInstruction(
+ block->GetArchitecture(),
+ line.addr,
+ block->GetArchitecture()->GetStackPointerRegister()
+ );
+ }
if (stackOffset.state == StackFrameOffset)
{
// Stack pointer is resolved to an offset: show the offset