10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.6 kb
手册页(邮政编码)- 347.2 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

5.8.3 DBUG包

MySQL服务器和大多数MySQL客户端都是用Fred Fish最初创建的DBUG包编译的。当您将MySQL配置为调试时,这个包就可以获得程序正在执行的操作的跟踪文件。看到第5.8.1.2节“创建跟踪文件”

本节总结了可以在命令行上的调试选项中指定的参数值,这些参数值用于构建了调试支持的MySQL程序。

方法调用程序可以使用DBUG包——调试(=debug_options- # (debug_options选择。如果指定——调试- #选择没有debug_options值,大多数MySQL程序使用默认值。服务器默认值为d:师:我:啊,/ tmp / mysqld.trace在Unix和d:师:我:啊,\ mysqld.trace在Windows上。这个默认值的效果是:

  • d:打开所有调试宏的输出

  • t:跟踪函数调用和退出

  • :输出行增加PID

  • 啊,/ tmp / mysqld.traceO, \ mysqld.trace:设置调试输出文件。

大多数客户端程序都使用默认值debug_options的价值d:师:o, / tmp /program_name.trace不管平台是什么。

下面是一些调试控件字符串的示例,它们可以在shell命令行中指定:

——debug=d:t——debug=d:f,main,subr1: f:L:t,20——debug=d,输入,输出,文件:n——debug=d:t:i:O,\\mysqld.trace

mysqld,也可以在运行时更改DBUG设置调试系统变量。该变量有全局值和会话值:

设置全局调试= 'debug_options”;设置会话调试= 'debug_options”;

改变全球调试值需要足够的权限来设置全局系统变量。改变会话调试值需要足够的权限来设置受限制的会话系统变量。看到第5.1.8.1节“系统变量特权”

debug_options值是由冒号分隔的字段组成的序列:

field_1: field_2:……:field_N

值中的每个字段都由一个强制标志字符组成,前面可选地加上+-字符,并可选地后跟以逗号分隔的修饰符列表:

[+ | -]国旗(修饰符修饰符,…,修饰符)

下表描述了允许的标志字符。无法识别的标志字符将被忽略。

国旗

描述

d

启用DBUG_的输出XXX当前状态的宏。后面可以是一个关键字列表,这只允许输出带有该关键字的DBUG宏。空的关键字列表允许输出所有宏。

在MySQL中,常用的调试宏关键字是启用的输入退出错误警告信息,循环

D

在每个调试器输出行之后延迟。参数是延迟,以十分之一秒为单位,取决于机器的能力。例如,D, 20指定2秒的延迟。

f

将调试、跟踪和分析限制在命名函数列表中。空列表启用所有函数。适当的dt旗帜仍然必须发放;此标志仅在启用时限制其操作。

F

为每一行调试或跟踪输出标识源文件名。

用每一行调试或跟踪输出的PID或线程ID标识进程。

l

为调试或跟踪输出的每一行标识源文件行号。

n

打印调试或跟踪输出的每一行的当前函数嵌套深度。

N

为每一行调试输出编号。

o

将调试器输出流重定向到指定的文件。默认输出为stderr

O

就像o,但文件实际上是在每次写入之间刷新的。在需要时,文件会在每次写入之间关闭并重新打开。

p

将调试器操作限制到指定的进程。进程必须用DBUG_PROCESS宏,并在列表中匹配一个,以便发生调试器操作。

P

打印每一行调试或跟踪输出的当前进程名。

r

当推入一个新状态时,不要继承前一个状态的函数嵌套级别。当输出从左侧空白开始时很有用。

年代

做功能_sanity (_file_ _line_)在每个调试的函数,直到_sanity ()返回不同于0的值。

t

启用函数调用/退出跟踪行。可以后跟一个列表(只包含一个修饰符),该列表给出了一个数字的最大跟踪级别,超过这个级别,调试或跟踪宏都不会输出。默认是编译时选项。

领先的+-字符和修饰符的末尾列表用于标记字符,如df它可以为所有适用的修饰符或其中的一部分启用调试操作:

  • 没有领导+-,则标志值设置为所给出的修饰符列表。

  • 与一家领先+-,列表中的修饰符将被添加到当前修饰符列表中或从当前修饰符列表中删除。

下面的示例展示了这是如何工作的d国旗。一个空d列出所有调试宏的启用输出。非空列表只支持对列表中的宏关键字进行输出。

这些语句设置了d值到修饰符列表,如下所示:

mysql> SET debug = 'd';mysql >选择@@debug;+---------+ | @@ 调试  | +---------+ | d  | +---------+ mysql >设置debug = ' d、错误、警告;mysql >选择@@debug;+-----------------+ | @@ 调试  | +-----------------+ | d、错误、警告  | +-----------------+

一个主要+-增加或减少电流d值:

mysql> SET debug = '+d,loop';mysql >选择@@debug;+----------------------+ | @@ 调试  | +----------------------+ | d,错误、警告循环  | +----------------------+ mysql >设置debug =“- d、错误、循环”;mysql >选择@@debug;+-----------+ | @@ 调试  | +-----------+ | d,警告  | +-----------+

增加启用所有宏结果没有变化:

mysql> SET debug = 'd';mysql >选择@@debug;+---------+ | @@ 调试  | +---------+ | d  | +---------+ mysql >设置debug = + d、循环的;mysql >选择@@debug;+---------+ | @@ 调试  | +---------+ | d  | +---------+

禁用所有已启用的宏将禁用d国旗完全:

SET debug = 'd,error,loop';mysql >选择@@debug;+--------------+ | @@ 调试  | +--------------+ | d、错误、循环  | +--------------+ mysql >设置debug =“- d、错误、循环”;mysql >选择@@debug;+---------+ | @@ 调试  | +---------+ | | +---------+