summaryrefslogtreecommitdiff
path: root/python/binaryview.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/binaryview.py')
-rw-r--r--python/binaryview.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/python/binaryview.py b/python/binaryview.py
index 4360502f..b784106e 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -145,6 +145,27 @@ class AnalysisCompletionEvent(object):
core.BNCancelAnalysisCompletionEvent(self.handle)
+class ActiveAnalysisInfo(object):
+ def __init__(self, func, analysis_time, update_count, submit_count):
+ self.func = func
+ self.analysis_time = analysis_time
+ self.update_count = update_count
+ self.submit_count = submit_count
+
+ def __repr__(self):
+ return "<ActiveAnalysisInfo %s, analysis_time %d, update_count %d, submit_count %d>" % (self.func, self.analysis_time, self.update_count, self.submit_count)
+
+
+class AnalysisInfo(object):
+ def __init__(self, state, analysis_time, active_info):
+ self.state = AnalysisState(state)
+ self.analysis_time = analysis_time
+ self.active_info = active_info
+
+ def __repr__(self):
+ return "<AnalysisInfo %s, analysis_time %d, active_info %s>" % (self.state, self.analysis_time, self.active_info)
+
+
class AnalysisProgress(object):
def __init__(self, state, count, total):
self.state = state
@@ -936,6 +957,20 @@ class BinaryView(object):
self.file.saved = value
@property
+ def analysis_info(self):
+ """Relevant analysis information with list of functions under active analysis (read-only)"""
+ info_ref = core.BNGetAnalysisInfo(self.handle)
+ info = info_ref[0]
+ active_info_list = []
+ for i in xrange(0, info.count):
+ func = function.Function(self, core.BNNewFunctionReference(info.activeInfo[i].func))
+ active_info = ActiveAnalysisInfo(func, info.activeInfo[i].analysisTime, info.activeInfo[i].updateCount, info.activeInfo[i].submitCount)
+ active_info_list.append(active_info)
+ result = AnalysisInfo(info.state, info.analysisTime, active_info_list)
+ core.BNFreeAnalysisInfo(info_ref)
+ return result
+
+ @property
def analysis_progress(self):
"""Status of current analysis (read-only)"""
result = core.BNGetAnalysisProgress(self.handle)
@@ -1027,6 +1062,14 @@ class BinaryView(object):
return function.RegisterValue(self.arch, result.value, confidence = result.confidence)
@property
+ def parameters_for_analysis(self):
+ return core.BNGetParametersForAnalysis(self.handle)
+
+ @parameters_for_analysis.setter
+ def parameters_for_analysis(self, params):
+ core.BNSetParametersForAnalysis(self.handle, params)
+
+ @property
def max_function_size_for_analysis(self):
"""Maximum size of function (sum of basic block sizes in bytes) for auto analysis"""
return core.BNGetMaxFunctionSizeForAnalysis(self.handle)