summaryrefslogtreecommitdiff
path: root/binaryview.cpp
diff options
context:
space:
mode:
authorRyan Snyder <ryan@vector35.com>2018-07-09 22:58:18 -0400
committerRyan Snyder <ryan@vector35.com>2018-07-09 23:00:18 -0400
commit838cb56a8505fc78d09befedd58dd632eeb2ee62 (patch)
tree797da072919ae25e8d26a90663c0760e9ef29707 /binaryview.cpp
parent69743572b93f2e29583751d1ec9656fbb34b9411 (diff)
parent4f1a7824357ab58d868dbd675af9b152fc3694e9 (diff)
Merge branch 'dev'
Diffstat (limited to 'binaryview.cpp')
-rw-r--r--binaryview.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/binaryview.cpp b/binaryview.cpp
index 8dcae40f..bebfb801 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -1014,6 +1014,21 @@ vector<Ref<Function>> BinaryView::GetAnalysisFunctionList()
}
+AnalysisInfo BinaryView::GetAnalysisInfo()
+{
+ AnalysisInfo result;
+ BNAnalysisInfo* info = BNGetAnalysisInfo(m_object);
+ result.state = info->state;
+ result.analysisTime = info->analysisTime;
+ result.activeInfo.reserve(info->count);
+ for (size_t i = 0; i < info->count; i++)
+ result.activeInfo.emplace_back(new Function(BNNewFunctionReference(info->activeInfo[i].func)),
+ info->activeInfo[i].analysisTime, info->activeInfo[i].submitCount, info->activeInfo[i].updateCount);
+ BNFreeAnalysisInfo(info);
+ return result;
+}
+
+
bool BinaryView::HasFunctions() const
{
return BNHasFunctions(m_object);
@@ -1459,6 +1474,7 @@ vector<LinearDisassemblyLine> BinaryView::GetPreviousLinearDisassemblyLines(Line
line.block = lines[i].block ? new BasicBlock(BNNewBasicBlockReference(lines[i].block)) : nullptr;
line.lineOffset = lines[i].lineOffset;
line.contents.addr = lines[i].contents.addr;
+ line.contents.instrIndex = lines[i].contents.instrIndex;
line.contents.tokens.reserve(lines[i].contents.count);
for (size_t j = 0; j < lines[i].contents.count; j++)
{
@@ -1507,6 +1523,7 @@ vector<LinearDisassemblyLine> BinaryView::GetNextLinearDisassemblyLines(LinearDi
line.block = lines[i].block ? new BasicBlock(BNNewBasicBlockReference(lines[i].block)) : nullptr;
line.lineOffset = lines[i].lineOffset;
line.contents.addr = lines[i].contents.addr;
+ line.contents.instrIndex = lines[i].contents.instrIndex;
line.contents.tokens.reserve(lines[i].contents.count);
for (size_t j = 0; j < lines[i].contents.count; j++)
{
@@ -1774,6 +1791,7 @@ bool BinaryView::GetSegmentAt(uint64_t addr, Segment& result)
result.dataOffset = segment.dataOffset;
result.dataLength = segment.dataLength;
result.flags = segment.flags;
+ result.autoDefined = segment.autoDefined;
return true;
}
@@ -1966,6 +1984,18 @@ uint64_t BinaryView::GetUIntMetadata(const string& key)
}
+BNAnalysisParameters BinaryView::GetParametersForAnalysis()
+{
+ return BNGetParametersForAnalysis(m_object);
+}
+
+
+void BinaryView::SetParametersForAnalysis(BNAnalysisParameters params)
+{
+ BNSetParametersForAnalysis(m_object, params);
+}
+
+
uint64_t BinaryView::GetMaxFunctionSizeForAnalysis()
{
return BNGetMaxFunctionSizeForAnalysis(m_object);