aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-03-17 14:30:43 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-03-17 14:30:43 -0300
commit205f9aa67b43b3d9b5059769cfc1ed0265341586 (patch)
tree88dc9ee32e3ebb3c26c266bc6392893c8fe196a7
parent94d38560c3095190fa2c868cbf7bcf39ca444568 (diff)
downloadlua-205f9aa67b43b3d9b5059769cfc1ed0265341586.tar.gz
lua-205f9aa67b43b3d9b5059769cfc1ed0265341586.tar.bz2
lua-205f9aa67b43b3d9b5059769cfc1ed0265341586.zip
New function 'printallstack' in test library
-rw-r--r--ltests.c23
-rw-r--r--ltests.h1
2 files changed, 24 insertions, 0 deletions
diff --git a/ltests.c b/ltests.c
index d3509862..5b4a6000 100644
--- a/ltests.c
+++ b/ltests.c
@@ -872,6 +872,28 @@ void lua_printstack (lua_State *L) {
872} 872}
873 873
874 874
875int lua_printallstack (lua_State *L) {
876 StkId p;
877 int i = 1;
878 CallInfo *ci = &L->base_ci;
879 printf("stack: >>\n");
880 for (p = L->stack.p; p < L->top.p; p++) {
881 if (ci != NULL && p == ci->func.p) {
882 printf(" ---\n");
883 if (ci == L->ci)
884 ci = NULL; /* printed last frame */
885 else
886 ci = ci->next;
887 }
888 printf("%3d: ", i++);
889 lua_printvalue(s2v(p));
890 printf("\n");
891 }
892 printf("<<\n");
893 return 0;
894}
895
896
875static int get_limits (lua_State *L) { 897static int get_limits (lua_State *L) {
876 lua_createtable(L, 0, 5); 898 lua_createtable(L, 0, 5);
877 setnameval(L, "IS32INT", LUAI_IS32INT); 899 setnameval(L, "IS32INT", LUAI_IS32INT);
@@ -2102,6 +2124,7 @@ static const struct luaL_Reg tests_funcs[] = {
2102 {"limits", get_limits}, 2124 {"limits", get_limits},
2103 {"listcode", listcode}, 2125 {"listcode", listcode},
2104 {"printcode", printcode}, 2126 {"printcode", printcode},
2127 {"printallstack", lua_printallstack},
2105 {"listk", listk}, 2128 {"listk", listk},
2106 {"listabslineinfo", listabslineinfo}, 2129 {"listabslineinfo", listabslineinfo},
2107 {"listlocals", listlocals}, 2130 {"listlocals", listlocals},
diff --git a/ltests.h b/ltests.h
index cc372b8f..af5641ba 100644
--- a/ltests.h
+++ b/ltests.h
@@ -94,6 +94,7 @@ LUAI_FUNC void lua_printvalue (struct TValue *v);
94** Function to print the stack 94** Function to print the stack
95*/ 95*/
96LUAI_FUNC void lua_printstack (lua_State *L); 96LUAI_FUNC void lua_printstack (lua_State *L);
97LUAI_FUNC int lua_printallstack (lua_State *L);
97 98
98 99
99/* test for lock/unlock */ 100/* test for lock/unlock */