Commit bb7585d3 authored by unknown's avatar unknown

Merge mysql.com:/Users/davi/mysql/bugs/34424-5.1

into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
parents 7946aafb bfd54d20
......@@ -412,15 +412,11 @@ void _db_process_(const char *name)
cs->process= name;
}
/*
* FUNCTION
*
* _db_set_ set current debugger settings
*
* SYNOPSIS
*
* VOID _db_set_(control)
* char *control;
* DbugParse parse control string and set current debugger setting
*
* DESCRIPTION
*
......@@ -444,7 +440,7 @@ void _db_process_(const char *name)
*
*/
void _db_set_(CODE_STATE *cs, const char *control)
static void DbugParse(CODE_STATE *cs, const char *control)
{
const char *end;
int rel=0;
......@@ -671,6 +667,35 @@ void _db_set_(CODE_STATE *cs, const char *control)
}
/*
* FUNCTION
*
* _db_set_ set current debugger settings
*
* SYNOPSIS
*
* VOID _db_set_(control)
* char *control;
*
* DESCRIPTION
*
* Given pointer to a debug control string in "control",
* parses the control string, and sets up a current debug
* settings. Pushes a new debug settings if the current is
* set to the initial debugger settings.
*/
void _db_set_(CODE_STATE *cs, const char *control)
{
get_code_state_or_return;
if (cs->stack == &init_settings)
PushState(cs);
DbugParse(cs, control);
}
/*
* FUNCTION
*
......@@ -685,7 +710,7 @@ void _db_set_(CODE_STATE *cs, const char *control)
*
* Given pointer to a debug control string in "control", pushes
* the current debug settings, parses the control string, and sets
* up a new debug settings with _db_set_()
* up a new debug settings with DbugParse()
*
*/
......@@ -694,7 +719,7 @@ void _db_push_(const char *control)
CODE_STATE *cs=0;
get_code_state_or_return;
PushState(cs);
_db_set_(cs, control);
DbugParse(cs, control);
}
/*
......@@ -717,7 +742,7 @@ void _db_set_init_(const char *control)
CODE_STATE tmp_cs;
bzero((uchar*) &tmp_cs, sizeof(tmp_cs));
tmp_cs.stack= &init_settings;
_db_set_(&tmp_cs, control);
DbugParse(&tmp_cs, control);
}
/*
......
......@@ -730,8 +730,9 @@ warning will be given. The DBUG_POP macro has no arguments.
EX:\ \fCDBUG_POP\ ();\fR
.SP 1
.LI DBUG_SET\
Modifies the current debugger state on top of the stack using the
debug control string passed as the macro argument. Unless
Modifies the current debugger state on top of the stack or pushes
a new state if the current is set to the initial settings, using
the debug control string passed as the macro argument. Unless
.I incremental
control string is used (see below), it's equivalent to a combination of
DBUG_POP and DBUG_PUSH.
......
set debug= 'T';
select @@debug;
@@debug
T
set debug= '+P';
select @@debug;
@@debug
P:T
set debug= '-P';
select @@debug;
@@debug
T
......@@ -22,4 +22,3 @@ wait_timeout : Bug#32801 wait_timeout.test fails randomly
ctype_create : Bug#32965 main.ctype_create fails
status : Bug#32966 main.status fails
ps_ddl : Bug#12093 2007-12-14 pending WL#4165 / WL#4166
query_cache_debug : Bug#34424: query_cache_debug.test leads to valgrind warnings
--source include/have_debug.inc
#
# Bug#34678 @@debug variable's incremental mode
#
set debug= 'T';
select @@debug;
set debug= '+P';
select @@debug;
set debug= '-P';
select @@debug;
......@@ -332,6 +332,7 @@ void my_thread_end(void)
/* tmp->dbug is allocated inside DBUG library */
if (tmp->dbug)
{
DBUG_POP();
free(tmp->dbug);
tmp->dbug=0;
}
......
......@@ -3926,10 +3926,8 @@ bool sys_var_thd_dbug::update(THD *thd, set_var *var)
if (var->type == OPT_GLOBAL)
DBUG_SET_INITIAL(var ? var->value->str_value.c_ptr() : "");
else
{
DBUG_POP();
DBUG_PUSH(var ? var->value->str_value.c_ptr() : "");
}
DBUG_SET(var ? var->value->str_value.c_ptr() : "");
return 0;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment