MySQL内部手册/注入测试故障/测试故障宏的使用情况

25.2测试故障宏使用情况

让我们假设以下函数:

void函数(void) {DBUG_CRASH_ENTER("function");if (DBUG_EVALUATE_IF("process_if", 1,0)) {DBUG_EXECUTE_IF("process_code", {const char *old_proc_info= thd->proc_info;thd->proc_info= "DBUG sleep";my_sleep (6000000);(thd - > proc_info = old_proc_info;});} DBUG_CRASH_VOID_RETURN;}

要使服务器在上面定义的故障点崩溃,我们需要超级用户并执行以下语句之一:

  • SET SESSION debug="+d,function_crash_enter";将使服务器在输入函数时崩溃。

  • SET SESSION debug="+d,function_crash_return";将使服务器在从函数返回时崩溃。

  • SET SESSION debug="+d,process_if";将执行如果

  • SET SESSION debug="+d,process_code";将执行睡眠代码。