@@ -186,16 +186,31 @@ protected override async Task<bool> AcceptCommand (MessageId id, string method,
186
186
var bpid = resp . Value [ "breakpointId" ] ? . ToString ( ) ;
187
187
var locations = resp . Value [ "locations" ] ? . Values < object > ( ) ;
188
188
var request = BreakpointRequest . Parse ( bpid , args ) ;
189
- context . BreakpointRequests [ bpid ] = request ;
189
+
190
+ // is the store done loading?
191
+ var loaded = context . Source . Task . IsCompleted ;
192
+ if ( ! loaded ) {
193
+ // Send and empty response immediately if not
194
+ // and register the breakpoint for resolution
195
+ context . BreakpointRequests [ bpid ] = request ;
196
+ SendResponse ( id , resp , token ) ;
197
+ }
198
+
190
199
if ( await IsRuntimeAlreadyReadyAlready ( id , token ) ) {
191
200
var store = await RuntimeReady ( id , token ) ;
192
201
193
202
Log ( "verbose" , $ "BP req { args } ") ;
194
- await SetBreakpoint ( id , store , request , token ) ;
203
+ await SetBreakpoint ( id , store , request , ! loaded , token ) ;
195
204
}
196
205
197
- var result = Result . OkFromObject ( request . AsSetBreakpointByUrlResponse ( locations ) ) ;
198
- SendResponse ( id , result , token ) ;
206
+ if ( loaded ) {
207
+ // we were already loaded so we should send a response
208
+ // with the locations included and register the request
209
+ context . BreakpointRequests [ bpid ] = request ;
210
+ var result = Result . OkFromObject ( request . AsSetBreakpointByUrlResponse ( locations ) ) ;
211
+ SendResponse ( id , result , token ) ;
212
+
213
+ }
199
214
return true ;
200
215
}
201
216
@@ -709,7 +724,7 @@ async Task<DebugStore> LoadStore (SessionId sessionId, CancellationToken token)
709
724
710
725
foreach ( var req in context . BreakpointRequests . Values ) {
711
726
if ( req . TryResolve ( source ) ) {
712
- await SetBreakpoint ( sessionId , context . store , req , token ) ;
727
+ await SetBreakpoint ( sessionId , context . store , req , true , token ) ;
713
728
}
714
729
}
715
730
}
@@ -759,7 +774,7 @@ async Task RemoveBreakpoint(MessageId msg_id, JObject args, CancellationToken to
759
774
breakpointRequest . Locations . Clear ( ) ;
760
775
}
761
776
762
- async Task SetBreakpoint ( SessionId sessionId , DebugStore store , BreakpointRequest req , CancellationToken token )
777
+ async Task SetBreakpoint ( SessionId sessionId , DebugStore store , BreakpointRequest req , bool sendResolvedEvent , CancellationToken token )
763
778
{
764
779
var context = GetContext ( sessionId ) ;
765
780
if ( req . Locations . Any ( ) ) {
@@ -796,7 +811,8 @@ async Task SetBreakpoint (SessionId sessionId, DebugStore store, BreakpointReque
796
811
location = loc . AsLocation ( )
797
812
} ;
798
813
799
- SendEvent ( sessionId , "Debugger.breakpointResolved" , JObject . FromObject ( resolvedLocation ) , token ) ;
814
+ if ( sendResolvedEvent )
815
+ SendEvent ( sessionId , "Debugger.breakpointResolved" , JObject . FromObject ( resolvedLocation ) , token ) ;
800
816
}
801
817
802
818
req . Locations . AddRange ( breakpoints ) ;
0 commit comments