summaryrefslogtreecommitdiff
path: root/function.cpp
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2025-02-06 15:00:04 -0500
committerGlenn Smith <glenn@vector35.com>2025-02-06 15:04:05 -0500
commit3355345145771291936738938721961916331716 (patch)
tree86c4e52556610081deb3bfc790bb01ac62906c99 /function.cpp
parent1473293c5e4463b5667e886b6e709582fc856872 (diff)
Add After variants for looking up variables at instructions
Fixes #6397
Diffstat (limited to 'function.cpp')
-rw-r--r--function.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp
index 6c74dfc9..811e64c3 100644
--- a/function.cpp
+++ b/function.cpp
@@ -1358,6 +1358,23 @@ bool Function::GetStackVariableAtFrameOffset(
}
+bool Function::GetStackVariableAtFrameOffsetAfterInstruction(
+ Architecture* arch, uint64_t addr, int64_t offset, VariableNameAndType& result)
+{
+ BNVariableNameAndType var;
+ if (!BNGetStackVariableAtFrameOffsetAfterInstruction(m_object, arch->GetObject(), addr, offset, &var))
+ return false;
+
+ result.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(var.type)), var.typeConfidence);
+ result.name = var.name;
+ result.var = var.var;
+ result.autoDefined = var.autoDefined;
+
+ BNFreeVariableNameAndType(&var);
+ return true;
+}
+
+
map<Variable, VariableNameAndType> Function::GetVariables()
{
size_t count;