summaryrefslogtreecommitdiff
path: root/rust/src/binaryview.rs
diff options
context:
space:
mode:
authorunknowntrojan <14975032+unknowntrojan@users.noreply.github.com>2023-07-11 16:13:53 +0200
committerKyle Martin <krm504@nyu.edu>2023-07-11 10:42:50 -0400
commita5dab55736c01a6b3805c62f5ec950f51fe37461 (patch)
treebc3dfc3d50f66475ee8e5f17291a23951f5a2d08 /rust/src/binaryview.rs
parenta9e98c7e6deaea0fdd271caba78a89f14dd3a2b7 (diff)
add BinaryView::functions_containing
Diffstat (limited to 'rust/src/binaryview.rs')
-rw-r--r--rust/src/binaryview.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/rust/src/binaryview.rs b/rust/src/binaryview.rs
index 07c079d2..a82db176 100644
--- a/rust/src/binaryview.rs
+++ b/rust/src/binaryview.rs
@@ -750,6 +750,17 @@ pub trait BinaryViewExt: BinaryViewBase {
}
}
+ // List of functions containing `addr`
+ fn functions_containing(&self, addr: u64) -> Array<Function> {
+ unsafe {
+ let mut count = 0;
+ let functions =
+ BNGetAnalysisFunctionsContainingAddress(self.as_ref().handle, addr, &mut count);
+
+ Array::new(functions, count, ())
+ }
+ }
+
fn function_at(&self, platform: &Platform, addr: u64) -> Result<Ref<Function>> {
unsafe {
let handle = BNGetAnalysisFunction(self.as_ref().handle, platform.handle, addr);