MySQLサーバーおよびほとんどのMySQLクライアントは,もともと弗雷德鱼によって作成されたDBUGパッケージとともにコンパイルされます。MySQLをデバッグ用に構成した場合は,このパッケージによって,プログラムが実行している内容のトレースファイルを取得できるようになります。セクション24.4.1.2 "トレスファルの作成"を参照してください。
このセクションでは,デバッグサポート付きでビルドされたMySQLプログラムのコマンド行のデバッグオプションに指定できる引数値をまとめています。DBUGパッケジを使用したプログラミングにいては,MySQLソdbug
ディレクトリにあるdbugマニュアルを参照してください。最新のdbugマニュアルを入手するには,最新の配布を使用してください。
Dbugパッケジは,——调试(=
またはdebug_options
]- # (
オプションを指定してプログラムを起動することによって使用できます。debug_options
]——调试
または- #
オプションを指定して,debug_options
値を指定しない場合,ほとんどのMySQLプログラムではデフォルト値が使用されます。サバのデフォルトは,Unixの場合はd:师:我:啊,/ tmp / mysqld.trace
, Windowsの場合はd:师:我:啊,\ mysqld.trace
です。このデフォルトには次のような効果があります。
d
:すべてのデバッグマクロの出力を有効にしますt
:関数の呼び出しおよび終了をトレスします我
:出力行にpidを追加します啊,/ tmp / mysqld.trace
、O, \ mysqld.trace
:デバッグ出力ファ邮箱ルを設定します
ほとんどのクラアントプログラムでは,プラットフォムにかかわらず,デフォルトのdebug_options
値であるd:师:o, / tmp /
が使用されます。program_name
.trace
シェルのコマンド行で指定されることがある,デバッグ制御文字列のいくかの例を次に示します。
——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”;
実行時に変更するには,セッション値であっても超级
権限が必要となります。
debug_options
値は,コロンで区切られた一連のフィルドです。
field_1: field_2:……:field_N
この値内の各フィルドは必須のフラグ文字で構成され,フラグ文字の前に+
文字または-
文字,およびフラグ文字の後ろにカンマ区切りの修飾子のリストがオプションで付加されることがあります。
[+ | -]国旗(修饰符修饰符,…,修饰符)
次の表は,許可されるフラグ文字を示しています。認識されないフラグ文字は暗黙のうに無視されます。
フラグ |
説明 |
|
DBUG_ MySQLでは,一般的に有効にされるデバッグマクロのキ,ワ,ドは, |
|
各デバッガの出力行のあとに待機します。引数は0.1秒単位の待機時間であり,マシンの能力の影響を受けます。たとえば, |
|
デバッグ,トレス,およびプロファ。空のリストの場合はすべての関数が有効になります。適切な |
|
デバッグ出力またはトレス出力の各行にソスファル名を示します。 |
|
デバッグ出力またはトレス出力の各行にpidまたはスレッドidでプロセスを示します。 |
|
デバッグ出力またはトレス出力の各行にソスファルの行番号を示します。 |
|
デバッグ出力またはトレス出力の各行に現在の関数のネストの深さを出力します。 |
|
デバッグ出力の各行に番号を付けます。 |
|
デバッガの出力ストリムを指定されたファレクトします。デフォルトの出力先は |
|
|
|
デバッガアクションを指定されたプロセスに限定します。デバッガアクションが実行されるためには,プロセスが |
|
デバッグ出力またはトレス出力の各行に現在のプロセス名を出力します。 |
|
新しい状態をプッシュするときに,前の状態の関数のネストレベルを継承しません。出力を左マジンから開始する場合に便利です。 |
|
|
|
関数の呼び出し/終了のトレス行を有効にします。最大のトレースレベルを示す数値を指定するリスト(修飾子が1つだけ含まれています)があとに続く場合があり,それを超えるとデバッグマクロまたはトレースマクロの出力は行われません。デフォルトはコンパ邮箱ル時のオプションです。 |
フラグの前の+
文字や-
文字,およびフラグの後ろに続く修飾子のリストは,d
、f
などのフラグ文字に対して使用して,該当するすべての修飾子または一部の修飾子に対してデバッグ操作を有効にできます。
フラグの前に
+
または-
がない場合,フラグ値は指定された修飾子リストのとおりに設定されます。フラグの前に
+
または-
がある場合は,リスト内の修飾子が現在の修飾子リストに対して追加または削除されます。
次の例は,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;+---------+ | @@ 调试 | +---------+ | | +---------+
MySQL 5.6.12より前では,+
および-
の修飾子が正しく処理されない場合があり,フラグ値が不正な状態のままになる可能性があります。调试
の設定順序を事前に確認するか,+
または-
を使用せずに設定してください。