コード例 #1
0
    def ensure_lldb_is_running(cls, w=None):
        """Returns True if lldb is running (we don't care if we started it or not).
    Returns False on error"""
        # Ensure we reflect any changes to saved settings (including project settings)
        # reload_settings()

        if not w and window_ref():
            w = window_ref()
        else:
            # We're redefining the default window.
            set_window_ref(w)

        if driver_instance() is None:
            sm = SettingsManager.getSM()
            clear_view_on_startup = sm.get_default('i/o.view.clear_on_startup', True)
            if clear_view_on_startup:
                LLDBLayoutManager.clear_view(lldb_out_view())

            if not cls.start_debugging(w):
                return False

            set_ui_updater(LLDBUIUpdater())
            g = cls.lldb_greeting()
            if lldb_out_view().size() > 0:
                g = '\n\n' + cls.lldb_greeting()
            lldb_view_write(g)
            lldb_view_write('cwd: ' + os.getcwd() + '\n')
            w.set_view_index(lldb_out_view(), 1, 0)

            cls.debug_prologue(driver_instance())
            return True

        return True
コード例 #2
0
    def ensure_lldb_is_running(cls, w=None):
        """Returns True if lldb is running (we don't care if we started it or not).
    Returns False on error"""
        # Ensure we reflect any changes to saved settings (including project settings)
        # reload_settings()

        if not w and window_ref():
            w = window_ref()
        else:
            # We're redefining the default window.
            set_window_ref(w)

        if driver_instance() is None:
            sm = SettingsManager.getSM()
            clear_view_on_startup = sm.get_default('i/o.view.clear_on_startup',
                                                   True)
            if clear_view_on_startup:
                LLDBLayoutManager.clear_view(lldb_out_view())

            if not cls.start_debugging(w):
                return False

            set_ui_updater(LLDBUIUpdater())
            g = cls.lldb_greeting()
            if lldb_out_view().size() > 0:
                g = '\n\n' + cls.lldb_greeting()
            lldb_view_write(g)
            lldb_view_write('cwd: ' + os.getcwd() + '\n')
            w.set_view_index(lldb_out_view(), 1, 0)

            cls.debug_prologue(driver_instance())
            return True

        return True
コード例 #3
0
 def set_lldb_window_layout(cls, window=window_ref()):
     sm = SettingsManager.getSM()
     lldb_window_layout = sm.get_default('layout',
                                         _default_lldb_window_layout)
     if lldb_out_view() != None and window.num_groups() != len(
             lldb_window_layout['cells']):
         window.run_command('set_layout', lldb_window_layout)
コード例 #4
0
    def lldb_toggle_output_view(cls, window, show=False, hide=False):
        """ Toggles the lldb output view visibility.

                if show=True: force showing the view;
                if hide=True: force hiding the view;
                Otherwise: Toggle view visibility.
        """
        # TODO: Set the input_panel syntax to 'lldb command'

        # Just show the window.
        v = lldb_out_view()
        if v:
            if show:
                if not cls.good_lldb_layout(window=window):
                    cls.set_lldb_window_layout(window=window)
                    window.set_view_index(v, 1, 0)
            elif hide:
                cls.set_regular_window_layout(window=window)
            elif not cls.good_lldb_layout(window=window):
                cls.set_lldb_window_layout(window=window)
                window.set_view_index(v, 1, 0)
            else:
                cls.set_regular_window_layout(window=window)
コード例 #5
0
    def lldb_toggle_output_view(cls, window, show=False, hide=False):
        """ Toggles the lldb output view visibility.

                if show=True: force showing the view;
                if hide=True: force hiding the view;
                Otherwise: Toggle view visibility.
        """
        # TODO: Set the input_panel syntax to 'lldb command'

        # Just show the window.
        v = lldb_out_view()
        if v:
            if show:
                if not cls.good_lldb_layout(window=window):
                    cls.set_lldb_window_layout(window=window)
                    window.set_view_index(v, 1, 0)
            elif hide:
                cls.set_regular_window_layout(window=window)
            elif not cls.good_lldb_layout(window=window):
                cls.set_lldb_window_layout(window=window)
                window.set_view_index(v, 1, 0)
            else:
                cls.set_regular_window_layout(window=window)
コード例 #6
0
 def setup(self):
     if lldb_out_view() is None:
         sm = SettingsManager.getSM()
         view_name = sm.get_default('i/o.view.name', default_lldb_view_name)
         set_lldb_out_view(get_lldb_output_view(
             self.window, view_name))  # for lldb output
コード例 #7
0
    def run(self):
        self.setup()

        LLDBLayoutManager.clear_view(lldb_out_view())
コード例 #8
0
 def setup(self):
     if lldb_out_view() is None:
         sm = SettingsManager.getSM()
         view_name = sm.get_default('i/o.view.name', default_lldb_view_name)
         set_lldb_out_view(get_lldb_output_view(self.window, view_name))  # for lldb output
コード例 #9
0
 def set_lldb_window_layout(cls, window=window_ref()):
     sm = SettingsManager.getSM()
     lldb_window_layout = sm.get_default('layout', _default_lldb_window_layout)
     if lldb_out_view() != None and window.num_groups() != len(lldb_window_layout['cells']):
         window.run_command('set_layout', lldb_window_layout)
コード例 #10
0
    def run(self):
        self.setup()

        LLDBLayoutManager.clear_view(lldb_out_view())