From 33936c204e64b389ec88d37d7787625ed88c4513 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Tue, 20 Apr 2021 15:38:21 -0400 Subject: Add support for analysis hold. --- python/binaryview.py | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) (limited to 'python') 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 "" % 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 -- cgit v1.3.1