]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect/lua: improve stack dumping
authorVictor Julien <vjulien@oisf.net>
Wed, 6 Nov 2024 08:13:10 +0000 (09:13 +0100)
committerVictor Julien <victor@inliniac.net>
Sun, 12 Jan 2025 19:02:35 +0000 (20:02 +0100)
Only useful when debugging. Add a prefix and a stack size indication.

src/detect-lua.c
src/detect-lua.h

index 36f045f50394d78c794a57ade9b3c31b091dcdb6..8db1d267a38dace93a71152daf248ba066466c53 100644 (file)
@@ -129,20 +129,19 @@ void DetectLuaRegister(void)
 #define DEFAULT_LUA_ALLOC_LIMIT       500000
 #define DEFAULT_LUA_INSTRUCTION_LIMIT 500000
 
-#if 0
 /** \brief dump stack from lua state to screen */
-void LuaDumpStack(lua_State *state)
+void LuaDumpStack(lua_State *state, const char *prefix)
 {
     int size = lua_gettop(state);
-    int i;
+    printf("%s: size %d\n", prefix, size);
 
-    for (i = 1; i <= size; i++) {
+    for (int i = 1; i <= size; i++) {
         int type = lua_type(state, i);
-        printf("Stack size=%d, level=%d, type=%d, ", size, i, type);
+        printf("- %s: Stack size=%d, level=%d, type=%d, ", prefix, size, i, type);
 
         switch (type) {
             case LUA_TFUNCTION:
-                printf("function %s", lua_tostring(state, i) ? "true" : "false");
+                printf("function %s", lua_tostring(state, i));
                 break;
             case LUA_TBOOLEAN:
                 printf("bool %s", lua_toboolean(state, i) ? "true" : "false");
@@ -164,7 +163,6 @@ void LuaDumpStack(lua_State *state)
         printf("\n");
     }
 }
-#endif
 
 /**
  * \brief Common function to run the Lua match function and process
index b2ab6b9df5795c366d86e33cc400930adffbe6d6..6397c4c413df760e631ad5c4cdb6bf0049aebb03 100644 (file)
@@ -66,5 +66,6 @@ int DetectLuaMatchBuffer(DetectEngineThreadCtx *det_ctx,
         Flow *f);
 
 void DetectLuaPostSetup(Signature *s);
+void LuaDumpStack(lua_State *state, const char *prefix);
 
 #endif /* SURICATA_DETECT_LUA_H */