Browse Source

debugger: new parameter cfgpkgcheck to do pkg memory check before each action

Daniel-Constantin Mierla 12 years ago
parent
commit
d1e456b251
2 changed files with 18 additions and 0 deletions
  1. 16 0
      modules/debugger/debugger_api.c
  2. 2 0
      modules/debugger/debugger_mod.c

+ 16 - 0
modules/debugger/debugger_api.c

@@ -149,6 +149,11 @@ str *dbg_get_cmd_name(int t)
  */
 int _dbg_cfgtrace = 0;
 
+/**
+ *
+ */
+int _dbg_cfgpkgcheck = 0;
+
 /**
  *
  */
@@ -302,6 +307,17 @@ int dbg_cfg_trace(void *data)
 
 	an = dbg_get_action_name(a);
 
+	if(_dbg_cfgpkgcheck!=0)
+	{
+#ifdef q_malloc_h
+		LM_DBG("checking pkg memory before action %.*s (line %d)\n",
+				an->len, an->s, a->cline);
+		qm_check(mem_block);
+#else
+		LM_DBG("cfg pkg check is disbled due to missing qm handler\n");
+#endif
+	}
+
 	if(_dbg_pid_list[process_no].set&DBG_CFGTRACE_ON)
 	{
 		if(is_printable(_dbg_cfgtrace_level))

+ 2 - 0
modules/debugger/debugger_mod.c

@@ -53,6 +53,7 @@ static int w_dbg_dump(struct sip_msg* msg, char* mask, char* level);
 
 /* parameters */
 extern int _dbg_cfgtrace;
+extern int _dbg_cfgpkgcheck;
 extern int _dbg_breakpoint;
 extern int _dbg_cfgtrace_level;
 extern int _dbg_cfgtrace_facility;
@@ -89,6 +90,7 @@ static param_export_t params[]={
 	{"mod_level_mode",    INT_PARAM, &default_dbg_cfg.mod_level_mode},
 	{"mod_level",         STR_PARAM|USE_FUNC_PARAM, (void*)dbg_mod_level_param},
 	{"reset_msgid",       INT_PARAM, &_dbg_reset_msgid},
+	{"cfgpkgcheck",       INT_PARAM, &_dbg_cfgpkgcheck},
 	{0, 0, 0}
 };