Răsfoiți Sursa

feat: log添加对断言的支持

SongZihuan 3 ani în urmă
părinte
comite
139433c93f
2 a modificat fișierele cu 7 adăugiri și 2 ștergeri
  1. 5 0
      include/tool/log.h
  2. 2 2
      src/core/run.c

+ 5 - 0
include/tool/log.h

@@ -55,4 +55,9 @@ AFUN_TOOL_EXPORT int writeFatalErrorLog_(Logger *logger, char *file, int line, c
 #define writeSendErrorLog(logger, ...) writeSendErrorLog_(logger, file_line, (char *)__FUNCTION__, __VA_ARGS__)
 #define writeFatalErrorLog(logger, exit_code, ...) writeFatalErrorLog_(logger, file_line, (char *)__FUNCTION__, exit_code, __VA_ARGS__)
 
+#define assertDebugLog(c, logger, ...) ((c) || writeDebugLog(logger, "Assert " #c " error : " __VA_ARGS__))
+#define assertInfoLog(c, logger, ...) ((c) || writeInfoLog(logger, "Assert " #c " error : " __VA_ARGS__))
+#define assertWarningLog(c, logger, ...) ((c) || writeWarningLog(logger, "Assert " #c " error : " __VA_ARGS__))
+#define assertErrorLog(c, logger, ...) ((c) || writeErrorLog(logger, "Assert " #c " error : " __VA_ARGS__))
+
 #endif //AFUN_LOG_H

+ 2 - 2
src/core/run.c

@@ -436,9 +436,9 @@ bool iterCode(af_Code *code, int mode, af_Environment *env){
                 if (env->activity->return_first && env->activity->return_obj == NULL)  // 设置return_first
                     env->activity->return_obj = *(af_Object **)msg->msg;
                 break;
-            case -1:  // 非正常但可处理 [已经放回]
+            case -1:  // NORMAL模式下, 非正常但可处理 [已经放回]
             default:
-                assert(env->activity->status == act_func_normal);
+                assertErrorLog(env->activity->status == act_func_normal, aFunCoreLogger, "");
                 break;
         }