|
|
@@ -14,6 +14,13 @@ void sqstd_printcallstack(HSQUIRRELVM v)
|
|
|
SQInteger level=1; //1 is to skip this function that is level 0
|
|
|
const SQChar *name=0;
|
|
|
SQInteger seq=0;
|
|
|
+ SQInteger max_str_size = 10 * 1024; //to not print long strings in stack trace
|
|
|
+ sq_pushliteral(v, _SC("__max_print_stack_str_size")); //can be overwritten at runtime
|
|
|
+ if(sq_getonroottable(v) == SQ_OK)
|
|
|
+ {
|
|
|
+ sq_getinteger(v, -1, &max_str_size);
|
|
|
+ sq_poptop(v); //remove the result
|
|
|
+ }
|
|
|
pf(v,_SC("\nCALLSTACK\n"));
|
|
|
while(SQ_SUCCEEDED(sq_stackinfos(v,level,&si)))
|
|
|
{
|
|
|
@@ -50,7 +57,7 @@ void sqstd_printcallstack(HSQUIRRELVM v)
|
|
|
break;
|
|
|
case OT_STRING:
|
|
|
sq_getstring(v,-1,&s);
|
|
|
- pf(v,_SC("[%s] 10k max \"%.10000s\"\n"),name,s);
|
|
|
+ pf(v,_SC("[%s] (%d max dump) \"%.*s\"\n"), name, max_str_size, max_str_size, s);
|
|
|
break;
|
|
|
case OT_TABLE:
|
|
|
pf(v,_SC("[%s] TABLE\n"),name);
|