diff options
| author | Xusheng <xusheng@vector35.com> | 2022-06-09 15:09:51 +0800 |
|---|---|---|
| committer | Xusheng <xusheng@vector35.com> | 2022-06-09 15:10:15 +0800 |
| commit | ca75090accb03cbcd07f2a65686f1efcb5416c1f (patch) | |
| tree | 7c8f193643d5d6cafc7a6b0482cd04a1117b22aa /python | |
| parent | 16f1f63e8c337b7f0264e25e5d766a48da581f1e (diff) | |
Better handling of the injected dbg object
Diffstat (limited to 'python')
| -rw-r--r-- | python/scriptingprovider.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/python/scriptingprovider.py b/python/scriptingprovider.py index 11707240..e6f55ec1 100644 --- a/python/scriptingprovider.py +++ b/python/scriptingprovider.py @@ -43,8 +43,6 @@ from . import function from .log import log_info, log_error, is_output_redirected_to_log from .pluginmanager import RepositoryManager from .enums import ScriptingProviderExecuteResult, ScriptingProviderInputReadyState -from .debugger import * - class _ThreadActionContext: _actions = [] @@ -817,11 +815,20 @@ from binaryninja import * @abc.abstractmethod def perform_set_current_binary_view(self, view): self.interpreter.current_view = view - if settings.Settings().get_bool('corePlugins.debugger'): - if view is not None: - self.interpreter.current_dbg = DebuggerController(view) - else: - self.interpreter.current_dbg = None + # By the time this scriptingprovider.py file is imported, the user plugins are not loaded yet. + # So `from debugger import DebuggerController` would not work. + from binaryninja.settings import Settings + if os.environ.get('BN_STANDALONE_DEBUGGER'): + from debugger import DebuggerController + self.debugger_imported = True + elif os.environ.get('BN_EXPERIMENTAL_DEBUGGER') or Settings().get_bool('corePlugins.debugger'): + from .debugger import DebuggerController + self.debugger_imported = True + + if view is not None and self.debugger_imported: + self.interpreter.current_dbg = DebuggerController(view) + else: + self.interpreter.current_dbg = None @abc.abstractmethod def perform_set_current_function(self, func): |
