summaryrefslogtreecommitdiff
path: root/python/binaryview.py
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2021-04-20 15:38:21 -0400
committerBrian Potchik <brian@vector35.com>2021-04-20 15:38:21 -0400
commit33936c204e64b389ec88d37d7787625ed88c4513 (patch)
treed966b5a5ee0f249ae2165dd5d85cefb9d92db8bc /python/binaryview.py
parent78b7800b6806ed16929bd184f24ed431ab8eb457 (diff)
Add support for analysis hold.
Diffstat (limited to 'python/binaryview.py')
-rw-r--r--python/binaryview.py30
1 files changed, 25 insertions, 5 deletions
diff --git a/python/binaryview.py b/python/binaryview.py
index bf07a3ad..463df925 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -386,15 +386,17 @@ class AnalysisProgress(object):
self._total = total
def __str__(self):
+ if self._state == AnalysisState.InitialState:
+ return "Initial"
+ if self._state == AnalysisState.HoldState:
+ return "Hold"
+ if self._state == AnalysisState.IdleState:
+ return "Idle"
if self._state == AnalysisState.DisassembleState:
return "Disassembling (%d/%d)" % (self._count, self._total)
if self._state == AnalysisState.AnalyzeState:
return "Analyzing (%d/%d)" % (self._count, self._total)
- if self._state == AnalysisState.ExtendedAnalyzeState:
- return "Extended Analysis"
- if self._state == AnalysisState.IdleState:
- return "Idle"
- return "Initial"
+ return "Extended Analysis"
def __repr__(self):
return "<progress: %s>" % str(self)
@@ -3116,6 +3118,24 @@ class BinaryView(object):
"""
core.BNAddAnalysisOption(self.handle, name)
+ def has_initial_analysis(self):
+ """
+ ``has_initial_analysis`` check for the presence of an initial analysis in this BinaryView.
+
+ :return: True if the BinaryView has a valid initial analysis, False otherwise
+ :rtype: bool
+ """
+ return core.BNHasInitialAnalysis(self.handle)
+
+ def set_analysis_hold(self, enable):
+ """
+ ``set_analysis_hold`` control the analysis hold for this BinaryView. Enabling analysis hold defers all future
+ analysis updates, therefore causing :func:`update_analysis` or :func:`update_analysis_and_wait` to take no action.
+
+ :rtype: None
+ """
+ core.BNSetAnalysisHold(self.handle, enable)
+
def update_analysis(self):
"""
``update_analysis`` asynchronously starts the analysis running and returns immediately. Analysis of BinaryViews