@@ -1145,6 +1145,54 @@ DkmStackWalkFrame GetLuaFunctionStackWalkFrame(ulong callInfoAddress, LuaFunctio
1145
1145
1146
1146
if ( callLuaFunction != null )
1147
1147
{
1148
+ void RegisterMissingScript ( )
1149
+ {
1150
+ var currFunctionData = callLuaFunction . value . ReadFunction ( process ) ;
1151
+
1152
+ if ( currFunctionData == null )
1153
+ return ;
1154
+
1155
+ string source = currFunctionData . ReadSource ( process ) ;
1156
+
1157
+ if ( source == null )
1158
+ return ;
1159
+
1160
+ bool foundNewScript = false ;
1161
+
1162
+ lock ( processData . symbolStore )
1163
+ {
1164
+ LuaStateSymbols stateSymbols = processData . symbolStore . FetchOrCreate ( stateAddress . Value ) ;
1165
+
1166
+ if ( stateSymbols . FetchScriptSource ( source ) == null )
1167
+ {
1168
+ stateSymbols . AddScriptSource ( source , null , null ) ;
1169
+
1170
+ foundNewScript = true ;
1171
+ }
1172
+ }
1173
+
1174
+ if ( ! foundNewScript )
1175
+ return ;
1176
+
1177
+ string filePath = TryGetSourceFilePath ( process , processData , source ) ;
1178
+
1179
+ if ( filePath == null )
1180
+ return ;
1181
+
1182
+ log . Debug ( $ "IDkmCallStackFilter.FilterNextFrame Resolved new script { source } to { filePath } ") ;
1183
+
1184
+ if ( HasPendingBreakpoint ( process , processData , filePath ) )
1185
+ {
1186
+ log . Debug ( $ "IDkmCallStackFilter.FilterNextFrame Reloading script { source } pending breakpoints") ;
1187
+
1188
+ var message = DkmCustomMessage . Create ( process . Connection , process , Guid . Empty , MessageToVsService . reloadBreakpoints , Encoding . UTF8 . GetBytes ( filePath ) , null ) ;
1189
+
1190
+ message . SendToVsService ( Guids . luaVsPackageComponentGuid , false ) ;
1191
+ }
1192
+ }
1193
+
1194
+ RegisterMissingScript ( ) ;
1195
+
1148
1196
ulong nextframe = frameSize != 0 ? frameAddress + ( ulong ) frameSize * LuaHelpers . GetValueSize ( process ) : 0u ;
1149
1197
1150
1198
instructionPointer = LuajitHelpers . FindFrameInstructionPointer ( process , luajitStateData , callLuaFunction , nextframe ) ;
0 commit comments