daveleroy / SublimeDebugger

Graphical Debugger for Sublime Text for debuggers that support the debug adapter protocol
MIT License
366 stars 41 forks source link

LLDB multi threaded stepping #245

Closed druppy closed 3 months ago

druppy commented 5 months ago

I have been really happy with my sublime debugger setup for a while, and everything seems to work just fine after some tweeking of keymaps and config setup.

I have, with success been debugging single threaded executables, but when I start debugging multi threaded apps and try to single step in a thread (after successfully hitting a breakpoint), it jumps over to single steps in other threads too (very confusing and not helpful). As a side note, gdb works fine in threaded executables.

Is this something i have misunderstood or is it a bug in the debugger plugin or is this a bug/feature in LLDB ?

daveleroy commented 5 months ago

Are you using what is on package control? There was an issue where stepping was targeting the wrong thread https://github.com/daveleroy/SublimeDebugger/commit/33d1a829db62b0f26dfad51b1272bfc96f8dabb1 but that is not on package control yet

druppy commented 5 months ago

Yes I am, and it sounds like that problem. When will this fix go into package control version ?

druppy commented 5 months ago

Are you using what is on package control? There was an issue where stepping was targeting the wrong thread 33d1a82 but that is not on package control yet

I tried to clone this git repos from master as suggested to ~/.config/sublime-text/Packages and the module loads as expected, but I get an ● Failed: No versions to install error. Are there some essential file that is missing when cloning ?

The error only happens when the adapter is loaded implicitly in the beginning of a debug session. if I install from the menu, it works.

I can now start the debug session, but if I add a breakpoint, it makes the following errors :

Debugger: ProjectConfiguration.reload
Debugger: error: adapter failed hover evaluation can't evaluate expressions when the process is running.
Traceback (most recent call last):
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/debugger.py", line 257, in start
    await self.start_with_configurations(configurations, no_debug)
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/debugger.py", line 270, in start_with_configurations
    self.dispose_terminals(unused_only=True)
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/debugger.py", line 671, in dispose_terminals
    terminal.dispose()
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/terminal_integrated.py", line 43, in dispose
    super().dispose()
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/output_panel.py", line 204, in dispose
    del OutputPanel._panels[self.view.id()]
AttributeError: type object 'OutputPanel' has no attribute '_panels'

error: type object 'OutputPanel' has no attribute '_panels'
Traceback (most recent call last):
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/debugger.py", line 257, in start
    await self.start_with_configurations(configurations, no_debug)
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/debugger.py", line 270, in start_with_configurations
    self.dispose_terminals(unused_only=True)
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/debugger.py", line 671, in dispose_terminals
    terminal.dispose()
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/terminal_integrated.py", line 43, in dispose
    super().dispose()
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/output_panel.py", line 191, in dispose
    self.debugger.remove_output_panel(self)
  File "/home/bl/.config/sublime-text/Packages/Debugger/modules/debugger.py", line 203, in remove_output_panel
    self.output_panels.remove(panel)
ValueError: list.remove(x): x not in list

error: list.remove(x): x not in list
daveleroy commented 3 months ago

The fixes for multi-threaded stepping should be on package control now. The above issue was probably some issue with master I believe it should clone fine now.