null+****@clear*****
null+****@clear*****
2011年 6月 29日 (水) 17:18:17 JST
mooz 2011-06-29 08:18:17 +0000 (Wed, 29 Jun 2011)
New Revision: 1a6d40c4ee41ceac2d8034bfffc3adcef05ec5f2
Log:
add documentation developer about debugging mroonga.
Added files:
doc/ja/source/developer/debug.rst
Modified files:
doc/ja/source/developer.rst
Modified: doc/ja/source/developer.rst (+6 -45)
===================================================================
--- doc/ja/source/developer.rst 2011-06-29 05:43:38 +0000 (fbed6c7)
+++ doc/ja/source/developer.rst 2011-06-29 08:18:17 +0000 (cab79af)
@@ -3,6 +3,12 @@
開発者向け情報
==============
+.. toctree::
+ :maxdepth: 2
+
+ developer/debug
+ developer/release
+
開発手法について
----------------
groongaストレージエンジン開発プロジェクトではBTSの1つであるRedmineを用いたチケット駆動開発を実施しています。
@@ -88,50 +94,6 @@ http://github.com/mroonga/mroonga
glibc 2.5はRed Hat Enterprise Linux 5に相当します。
-デバッグ用ビルド方法
---------------------
-
-デバッグ用にビルドすることにより、gdb上でのシンボル解決など開発時に得られる情報が多くなります。そのため、開発時はデバッグ用にMySQLとgroongaストレージエンジンをビルドします。
-
-.. note::
-
- 片方だけデバッグ用ビルドにすると構造体のサイズなどが異なってしまうため、groongaストレージエンジンがロードできなかったり、実行時にassertに引っかかったりしてうまく動作しません。
-
-MySQLのデバッグ用ビルド方法
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-`MySQL :: MySQL 5.5 Reference Manual :: 2.9.2 Installing MySQL from a Standard Source Distribution`_ にある通り、CMakeのオプションに ``-DWITH_DEBUG=yes`` オプションを渡すことでデバッグ用にビルドすることができます。
-
-ダウンロードからビルドまでの流れは以下の通りです。::
-
- % mkdir -p ~/work/
- % cd ~/work/
- % wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.13.tar.gz
- % tar xvzf mysql-5.5.13.tar.gz
- % cd mysql-5.5.13
- % cmake . -DCMAKE_INSTALL_PREFIX=/tmp/local -DWITH_DEBUG=yes
- % make
-
-.. _`MySQL :: MySQL 5.5 Reference Manual :: 2.9.2 Installing MySQL from a Standard Source Distribution`: http://dev.mysql.com/doc/refman/5.5/en/installing-source-distribution.html
-
-groongaストレージエンジンのデバッグ用ビルド方法
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-groongaストレージエンジンはconfigureのオプションに ``--with-debug`` を渡すことでデバッグ用にビルドすることができます。
-
-リポジトリのcloneからビルドまでの流れは以下の通りです。::
-
- % cd ~/work/
- % git clone git****@githu*****:mroonga/mroonga.git
- % cd mroonga
- % ./autogen.sh
- % ./configure CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" --with-debug --prefix=/tmp/local --with-mysql-source=$HOME/work/mysql-5.5.13 --with-mysql-config=$HOME/work/mysql-5.5.13/scripts/mysql_config
- % make
-
-無事にビルドができたら以下のようにテストを実行してください。すべてのテストが ``[pass]`` になればデバッグ用ビルドは成功しています。::
-
- % test/run-sql-test.sh
-
ソースディレクトリ解説
----------------------
今のところソースファイルの数はごくわずかです。なるべくシンプルな状態を維持したいと考えています。
@@ -204,4 +166,3 @@ groongaストレージエンジンではドキュメント作成にsphinxを使
従って、各チケットに対するドキュメントのpushはmroongaレポジトリに対するpushのみで構いません。
またsphinxの出力するディレクトリ名がgithubで使用できない問題を回避するため、"doc/ja/source"ディレクトリにてsphinx2github.shスクリプトを用意しています。mroonga.github.comにcommitする場合にはこのスクリプトを実行してsphinxの生成したファイルを修正して置きましょう。
-
Added: doc/ja/source/developer/debug.rst (+76 -0) 100644
===================================================================
--- /dev/null
+++ doc/ja/source/developer/debug.rst 2011-06-29 08:18:17 +0000 (c2eeb78)
@@ -0,0 +1,76 @@
+.. highlightlang:: none
+
+デバッグ方法
+============
+
+デバッグ用ビルド方法
+--------------------
+
+デバッグ用にビルドすることにより、gdb上でのシンボル解決など開発時に得られる情報が多くなります。そのため、開発時はデバッグ用にMySQLとgroongaストレージエンジンをビルドします。
+
+.. note::
+
+ 片方だけデバッグ用ビルドにすると構造体のサイズなどが異なってしまうため、groongaストレージエンジンがロードできなかったり、実行時にassertに引っかかったりしてうまく動作しません。
+
+MySQLのデバッグ用ビルド方法
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+`MySQL :: MySQL 5.5 Reference Manual :: 2.9.2 Installing MySQL from a Standard Source Distribution`_ にある通り、CMakeのオプションに ``-DWITH_DEBUG=yes`` オプションを渡すことでデバッグ用にビルドすることができます。
+
+ダウンロードからビルドまでの流れは以下の通りです。::
+
+ % mkdir -p ~/work/
+ % cd ~/work/
+ % wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.13.tar.gz
+ % tar xvzf mysql-5.5.13.tar.gz
+ % cd mysql-5.5.13
+ % cmake . -DCMAKE_INSTALL_PREFIX=/tmp/local -DWITH_DEBUG=yes
+ % make
+
+.. _`MySQL :: MySQL 5.5 Reference Manual :: 2.9.2 Installing MySQL from a Standard Source Distribution`: http://dev.mysql.com/doc/refman/5.5/en/installing-source-distribution.html
+
+groongaストレージエンジンのデバッグ用ビルド方法
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+groongaストレージエンジンはconfigureのオプションに ``--with-debug`` を渡すことでデバッグ用にビルドすることができます。
+
+リポジトリのcloneからビルドまでの流れは以下の通りです。::
+
+ % cd ~/work/
+ % git clone git****@githu*****:mroonga/mroonga.git
+ % cd mroonga
+ % ./autogen.sh
+ % ./configure CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" --with-debug --prefix=/tmp/local --with-mysql-source=$HOME/work/mysql-5.5.13 --with-mysql-config=$HOME/work/mysql-5.5.13/scripts/mysql_config
+ % make
+
+無事にビルドができたら以下のようにテストを実行してください。すべてのテストが ``[pass]`` になればデバッグ用ビルドは成功しています。::
+
+ % test/run-sql-test.sh
+
+run-sql-test.sh を使いこなす
+----------------------------
+
+run-sql-test.sh はデバッグの友。ここでは、その便利な使い方の一例をご紹介します。
+
+指定したテストを実行する
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+何もオプションを渡さずに run-sql-test.sh を実行すると ``test/sql/t/`` 以下にある全てのテスト (``*.test``) が実行されてしまいます。
+
+特定のテストだけを実行したい、という場合は次のようにしてテスト名を --do-test オプションに渡します。 ::
+
+ ./test/run-sql-test.sh --do-test=foobar
+
+トレースを見る
+^^^^^^^^^^^^^^
+
+次のようにして ``--debug`` オプションをつけてテストを実行すると、関数の呼び出しなどが記録されます。この呼び出しは ``${MySQLの作業ディレクトリ}/${MySQLのバージョン}/mysql-test/var/log/mysqld.1.trace`` に格納されます。
+
+新しく関数を作成した場合は MRN_DBUG_ENTER_FUNCTION 関数の先頭に配置し、関数の呼び出しを記録するようにすると良いでしょう。
+
+GDB を立ち上げる
+^^^^^^^^^^^^^^^^
+
+``--gdb`` オプションを指定することで、テストを実行する際に GDB を用いてデバッグを行うことができます。 ::
+
+ ./test/run-sql-test.sh --gdb