@@ -231,6 +231,8 @@ runtime·printcreatedby(G *gp)
231
231
void
232
232
runtime·traceback (uintptr pc , uintptr sp , uintptr lr , G * gp )
233
233
{
234
+ int32 n ;
235
+
234
236
if (gp -> status == Gsyscall ) {
235
237
// Override signal registers if blocked in system call.
236
238
pc = gp -> syscallpc ;
@@ -240,8 +242,11 @@ runtime·traceback(uintptr pc, uintptr sp, uintptr lr, G *gp)
240
242
241
243
// Print traceback. By default, omits runtime frames.
242
244
// If that means we print nothing at all, repeat forcing all frames printed.
243
- if (runtime·gentraceback (pc , sp , lr , gp , 0 , nil , 100 , nil , nil , false) == 0 )
244
- runtime·gentraceback (pc , sp , lr , gp , 0 , nil , 100 , nil , nil , true);
245
+ n = runtime·gentraceback (pc , sp , lr , gp , 0 , nil , TracebackMaxFrames , nil , nil , false);
246
+ if (n == 0 )
247
+ runtime·gentraceback (pc , sp , lr , gp , 0 , nil , TracebackMaxFrames , nil , nil , true);
248
+ if (n == TracebackMaxFrames )
249
+ runtime·printf ("...additional frames elided...\n" );
245
250
runtime·printcreatedby (gp );
246
251
}
247
252
0 commit comments