From 88c7de7a9d390d2e99d14d1ce6837729a69e900d Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 29 Dec 2015 16:11:53 -0500 Subject: Show cross references for entire range when selecting multiple bytes --- binaryview.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'binaryview.cpp') diff --git a/binaryview.cpp b/binaryview.cpp index f2090185..721adcba 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -803,6 +803,26 @@ vector BinaryView::GetCodeReferences(uint64_t addr) } +vector BinaryView::GetCodeReferences(uint64_t addr, uint64_t len) +{ + size_t count; + BNReferenceSource* refs = BNGetCodeReferencesInRange(m_view, addr, len, &count); + + vector result; + for (size_t i = 0; i < count; i++) + { + ReferenceSource src; + src.func = new Function(BNNewFunctionReference(refs[i].func)); + src.arch = new CoreArchitecture(refs[i].arch); + src.addr = refs[i].addr; + result.push_back(src); + } + + BNFreeCodeReferences(refs, count); + return result; +} + + Ref BinaryView::GetSymbolByAddress(uint64_t addr) { BNSymbol* sym = BNGetSymbolByAddress(m_view, addr); -- cgit v1.3.1