| 890 | return self.active_view.insert(self.active_selection_begin, data) |
| 891 | |
| 892 | def __init__(self, provider): |
| 893 | super(PythonScriptingInstance, self).__init__(provider) |
| 894 | self.interpreter = PythonScriptingInstance.InterpreterThread(self) |
| 895 | self.interpreter.start() |
| 896 | self.queued_input = "" |
| 897 | self.input_ready_state = ScriptingProviderInputReadyState.ReadyForScriptExecution |
| 898 | self.debugger_imported = False |
| 899 | from binaryninja.settings import Settings |
| 900 | settings = Settings() |
| 901 | if settings.contains('corePlugins.view.sharedCache') and settings.get_bool('corePlugins.view.sharedCache'): |
| 902 | from .sharedcache import SharedCacheController |
| 903 | if os.environ.get('BN_STANDALONE_DEBUGGER'): |
| 904 | # By the time this scriptingprovider.py file is imported, the user plugins are not loaded yet. |
| 905 | # So `from debugger import DebuggerController` would not work. |
| 906 | from debugger import DebuggerController |
| 907 | self.DebuggerController = DebuggerController |
| 908 | self.debugger_imported = True |
| 909 | else: |
| 910 | if settings.contains('corePlugins.debugger') and settings.get_bool('corePlugins.debugger') and \ |
| 911 | (os.environ.get('BN_DISABLE_CORE_DEBUGGER') is None): |
| 912 | from .debugger import DebuggerController |
| 913 | self.DebuggerController = DebuggerController |
| 914 | self.debugger_imported = True |
| 915 | |
| 916 | @abc.abstractmethod |
| 917 | def perform_stop(self): |