summaryrefslogtreecommitdiff
path: root/binaryview.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2016-09-10 00:36:27 -0400
committerRusty Wagner <rusty@vector35.com>2016-09-10 00:36:27 -0400
commit6d3fe290eb20e31a33e929933c01d2ca3eb43da1 (patch)
tree5adc7c8dd595eff99cfcbeb7b689aae19bd46221 /binaryview.cpp
parent6be6ee30e5973fa4d5f29cebdeafdf05c3f4251e (diff)
Add API for list of basic blocks starting at an address
Diffstat (limited to 'binaryview.cpp')
-rw-r--r--binaryview.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/binaryview.cpp b/binaryview.cpp
index 1c03eca5..0a7f23ce 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -987,6 +987,20 @@ vector<Ref<BasicBlock>> BinaryView::GetBasicBlocksForAddress(uint64_t addr)
}
+vector<Ref<BasicBlock>> BinaryView::GetBasicBlocksStartingAtAddress(uint64_t addr)
+{
+ size_t count;
+ BNBasicBlock** blocks = BNGetBasicBlocksStartingAtAddress(m_object, addr, &count);
+
+ vector<Ref<BasicBlock>> result;
+ for (size_t i = 0; i < count; i++)
+ result.push_back(new BasicBlock(BNNewBasicBlockReference(blocks[i])));
+
+ BNFreeBasicBlockList(blocks, count);
+ return result;
+}
+
+
vector<ReferenceSource> BinaryView::GetCodeReferences(uint64_t addr)
{
size_t count;