diff --git a/regression/regression/result.txt b/regression/regression/result.txt index 157f75d436..7f40bc2b23 100644 --- a/regression/regression/result.txt +++ b/regression/regression/result.txt @@ -10876,14 +10876,12 @@ ERROR: IsEnd() is invalid as Begin() is never called constructor failed with: excessive CPU usage in list filter function Your script made an error: excessive CPU usage in valuator function -CALLSTACK +CALLSTACK WITH LOCALS *FUNCTION [Valuate()] Valuate line [5] + [args] ARRAY + [this] INSTANCE *FUNCTION [Start()] regression/main.nut line [2412] - -LOCALS -[args] ARRAY -[this] INSTANCE -[Infinite] CLOSURE -[list] INSTANCE -[this] INSTANCE + [Infinite] CLOSURE + [list] INSTANCE + [this] INSTANCE ERROR: The script died unexpectedly. diff --git a/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp b/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp index 8f3b6b78b4..22d0a66b7d 100644 --- a/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp +++ b/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp @@ -19,7 +19,7 @@ void sqstd_printcallstack(HSQUIRRELVM v) SQInteger level=1; //1 is to skip this function that is level 0 SQInteger seq=0; pf(v,"\n"); - pf(v,"CALLSTACK\n"); + pf(v,"CALLSTACK WITH LOCALS\n"); while(SQ_SUCCEEDED(sq_stackinfos(v,level,&si))) { std::string_view fn="unknown"; @@ -35,13 +35,6 @@ void sqstd_printcallstack(HSQUIRRELVM v) src = (p == std::string_view::npos) ? si.source : si.source.substr(p + 4); } pf(v,fmt::format("*FUNCTION [{}()] {} line [{}]\n",fn,src,si.line)); - level++; - } - level=0; - pf(v,"\n"); - pf(v,"LOCALS\n"); - - for(level=0;level<10;level++){ seq=0; std::optional opt; while ((opt = sq_getlocal(v,level,seq)).has_value()) { @@ -50,64 +43,65 @@ void sqstd_printcallstack(HSQUIRRELVM v) switch(sq_gettype(v,-1)) { case OT_NULL: - pf(v,fmt::format("[{}] NULL\n",name)); + pf(v,fmt::format(" [{}] NULL\n",name)); break; case OT_INTEGER: sq_getinteger(v,-1,&i); - pf(v,fmt::format("[{}] {}\n",name,i)); + pf(v,fmt::format(" [{}] {}\n",name,i)); break; case OT_FLOAT: sq_getfloat(v,-1,&f); - pf(v,fmt::format("[{}] {:14g}\n",name,f)); + pf(v,fmt::format(" [{}] {:14g}\n",name,f)); break; case OT_USERPOINTER: - pf(v,fmt::format("[{}] USERPOINTER\n",name)); + pf(v,fmt::format(" [{}] USERPOINTER\n",name)); break; case OT_STRING: { std::string_view view; sq_getstring(v,-1,view); - pf(v,fmt::format("[{}] \"{}\"\n",name,view)); + pf(v,fmt::format(" [{}] \"{}\"\n",name,view)); break; } case OT_TABLE: - pf(v,fmt::format("[{}] TABLE\n",name)); + pf(v,fmt::format(" [{}] TABLE\n",name)); break; case OT_ARRAY: - pf(v,fmt::format("[{}] ARRAY\n",name)); + pf(v,fmt::format(" [{}] ARRAY\n",name)); break; case OT_CLOSURE: - pf(v,fmt::format("[{}] CLOSURE\n",name)); + pf(v,fmt::format(" [{}] CLOSURE\n",name)); break; case OT_NATIVECLOSURE: - pf(v,fmt::format("[{}] NATIVECLOSURE\n",name)); + pf(v,fmt::format(" [{}] NATIVECLOSURE\n",name)); break; case OT_GENERATOR: - pf(v,fmt::format("[{}] GENERATOR\n",name)); + pf(v,fmt::format(" [{}] GENERATOR\n",name)); break; case OT_USERDATA: - pf(v,fmt::format("[{}] USERDATA\n",name)); + pf(v,fmt::format(" [{}] USERDATA\n",name)); break; case OT_THREAD: - pf(v,fmt::format("[{}] THREAD\n",name)); + pf(v,fmt::format(" [{}] THREAD\n",name)); break; case OT_CLASS: - pf(v,fmt::format("[{}] CLASS\n",name)); + pf(v,fmt::format(" [{}] CLASS\n",name)); break; case OT_INSTANCE: - pf(v,fmt::format("[{}] INSTANCE\n",name)); + pf(v,fmt::format(" [{}] INSTANCE\n",name)); break; case OT_WEAKREF: - pf(v,fmt::format("[{}] WEAKREF\n",name)); + pf(v,fmt::format(" [{}] WEAKREF\n",name)); break; case OT_BOOL:{ sq_getbool(v,-1,&b); - pf(v,fmt::format("[{}] {}\n",name,b?"true":"false")); + pf(v,fmt::format(" [{}] {}\n",name,b?"true":"false")); } break; default: assert(0); break; } sq_pop(v,1); } + level++; } } }