Only load threads after _both_ init and launch. Maybe this is the magic that works for all servers
This commit is contained in:
parent
463f7a8220
commit
85d2f10f32
1 changed files with 21 additions and 2 deletions
|
|
@ -57,6 +57,8 @@ class DebugSession( object ):
|
|||
self._configuration = None
|
||||
|
||||
self._attach_process = None
|
||||
self._init_complete = False
|
||||
self._launch_complete = False
|
||||
|
||||
vim.command( 'sign define vimspectorBP text==> texthl=Error' )
|
||||
vim.command( 'sign define vimspectorBPDisabled text=!> texthl=Warning' )
|
||||
|
|
@ -229,6 +231,9 @@ class DebugSession( object ):
|
|||
json.dumps( self._attach_process ) ) )
|
||||
self._attach_process = None
|
||||
|
||||
self._init_complete = False
|
||||
self._launch_complete = False
|
||||
|
||||
if self._uiTab:
|
||||
self._stackTraceView.Reset()
|
||||
self._variablesView.Reset()
|
||||
|
|
@ -381,6 +386,9 @@ class DebugSession( object ):
|
|||
self._logger.info( 'Starting debug adapter with: {0}'.format( json.dumps(
|
||||
self._adapter ) ) )
|
||||
|
||||
self._init_complete = False
|
||||
self._launch_complete = False
|
||||
|
||||
self._connection_type = 'job'
|
||||
if 'port' in self._adapter:
|
||||
self._connection_type = 'channel'
|
||||
|
|
@ -572,7 +580,7 @@ class DebugSession( object ):
|
|||
# then starts to listen for thread events to detect new or terminated
|
||||
# threads.
|
||||
#
|
||||
lambda msg: self._stackTraceView.LoadThreads( True ),
|
||||
lambda msg: self._OnLaunchComplete(),
|
||||
{
|
||||
'command': launch_config[ 'request' ],
|
||||
'arguments': launch_config
|
||||
|
|
@ -586,11 +594,22 @@ class DebugSession( object ):
|
|||
self._codeView.AddBreakpoints( source, message[ 'body' ][ 'breakpoints' ] )
|
||||
self._codeView.ShowBreakpoints()
|
||||
|
||||
def _OnLaunchComplete( self ):
|
||||
self._launch_complete = True
|
||||
self._LoadThreadsIfReady()
|
||||
|
||||
def _OnInitializeComplete( self ):
|
||||
self._init_complete = True
|
||||
self._LoadThreadsIfReady()
|
||||
|
||||
def _LoadThreadsIfReady( self ):
|
||||
if self._launch_complete and self._init_complete:
|
||||
self._stackTraceView.LoadThreads( True )
|
||||
|
||||
def OnEvent_initialized( self, message ):
|
||||
self._SendBreakpoints()
|
||||
self._connection.DoRequest(
|
||||
None,
|
||||
self._OnInitializeComplete(),
|
||||
{
|
||||
'command': 'configurationDone',
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue