Просмотр исходного кода

update: luat_main初始化时为dbg的dbg_L赋值

Wendal Chen 4 лет назад
Родитель
Сommit
7bd2758316
4 измененных файлов с 14 добавлено и 3 удалено
  1. 2 0
      luat/include/luat_dbg.h
  2. 1 1
      luat/modules/luat_cmux.c
  3. 7 0
      luat/modules/luat_lib_dbg.c
  4. 4 2
      luat/modules/luat_main.c

+ 2 - 0
luat/include/luat_dbg.h

@@ -16,6 +16,8 @@ typedef struct line_bp
 
 
 typedef void (*luat_dbg_cb) (void* params);
 typedef void (*luat_dbg_cb) (void* params);
 
 
+int luat_dbg_init(lua_State *L);
+
 void luat_dbg_set_hook_state(int state);
 void luat_dbg_set_hook_state(int state);
 int luat_dbg_get_hook_state(void);
 int luat_dbg_get_hook_state(void);
 
 

+ 1 - 1
luat/modules/luat_cmux.c

@@ -251,7 +251,7 @@ void luat_cmux_read(unsigned char* buff,size_t len){
             memset(cmux_read_data.data, 0, 40);
             memset(cmux_read_data.data, 0, 40);
         }
         }
     }else if (cmux_read_data.Fcs && cmux_read_data.Len){
     }else if (cmux_read_data.Fcs && cmux_read_data.Len){
-        strcat(cmux_read_data.data, buff);
+        strcat((char*)cmux_read_data.data, (const char*)buff);
     }else{
     }else{
         memset(cmux_read_data.data, 0, 40);
         memset(cmux_read_data.data, 0, 40);
     }
     }

+ 7 - 0
luat/modules/luat_lib_dbg.c

@@ -449,6 +449,13 @@ int l_debug_close(lua_State *L) {
     return 0;
     return 0;
 }
 }
 
 
+int luat_dbg_init(lua_State *L) {
+    lua_sethook(L, luat_debug_hook, LUA_MASKCALL | LUA_MASKRET | LUA_MASKLINE, 0);
+    if (dbg_L == NULL)
+        dbg_L = L;
+    return 0;
+}
+
 #ifdef LUAT_USE_SHELL
 #ifdef LUAT_USE_SHELL
 // 供dbg_init.lua判断cmux状态
 // 供dbg_init.lua判断cmux状态
 int l_debug_cmux_state(lua_State *L) {
 int l_debug_cmux_state(lua_State *L) {

+ 4 - 2
luat/modules/luat_main.c

@@ -11,6 +11,7 @@
 
 
 #define LUAT_LOG_TAG "luat.main"
 #define LUAT_LOG_TAG "luat.main"
 #include "luat_log.h"
 #include "luat_log.h"
+#include "luat_dbg.h"
 
 
 #ifndef LUAT_USE_CMDLINE_ARGS
 #ifndef LUAT_USE_CMDLINE_ARGS
 #ifdef LUA_USE_WINDOWS
 #ifdef LUA_USE_WINDOWS
@@ -81,8 +82,9 @@ static int pmain(lua_State *L) {
 #endif
 #endif
 
 
 #ifdef LUAT_USE_DBG
 #ifdef LUAT_USE_DBG
-    extern void luat_debug_hook(lua_State *L, lua_Debug *ar);
-    lua_sethook(L, luat_debug_hook, LUA_MASKCALL | LUA_MASKRET | LUA_MASKLINE, 0);
+    //extern void luat_debug_hook(lua_State *L, lua_Debug *ar);
+    //lua_sethook(L, luat_debug_hook, LUA_MASKCALL | LUA_MASKRET | LUA_MASKLINE, 0);
+    luat_dbg_init(L);
     // 寻找dbg_init.lua, 里面有初始化代码
     // 寻找dbg_init.lua, 里面有初始化代码
     if (luat_search_module("dbg_init", filename) == 0) {
     if (luat_search_module("dbg_init", filename) == 0) {
         luaL_dofile(L, filename);
         luaL_dofile(L, filename);