CLion on macOSでMySQLをデバッグする
最近MySQLのdebug buildをMacでする機会が多くなったのでメモがてら残しておく。 $HOME配下にmysqlディレクトリを作ってmysql_sourceにコードを、mysql_dataにdatadirとかバイナリを置く構成にする。 最初brewとかつかってなにかいれた記憶があるけど、忘れてしまった。。。
とりあえずビルドするまで
$ wgetとかでboost付きのソースコードを取得 $ tar xvf mysql-boost-8.0.20.tar.gz -- ビルド作業はworkで行う。 $ mkdir work $ cd work $ cmake \ -DCMAKE_INSTALL_PREFIX=${HOME}/mysql/mysql_data/mysql-8.0.20 \ -DMYSQL_DATADIR=${HOME}/mysql/mysql_data/mysql-8.0.20/data \ -DSYSCONFDIR=${HOME}/mysql/mysql_data/mysql-8.0.20 \ -DMYSQL_UNIX_ADDR=${HOME}/mysql/mysql_data/mysql-8.0.20/data/mysql.sock \ -DWITH_DEBUG=1 \ -DWITH_BOOST=${HOME}/mysql/mysql_source/mysql-8.0.20/boost ../mysql_source/mysql-8.0.20 $ time make -j 4 $ time make install -j4
自分の環境だとだいたい30分くらい
わーい
— lhfukamachi (@lhfukamachi) 2020年4月18日
```
$ time make -j 4
real24m0.747s
user83m16.501s
sys7m34.630s
```
初期化
$ ./mysqld --basedir=${HOME}/mysql/mysql_data/mysql-8.0.20 --datadir=${HOME}/mysql/mysql_data/mysql-8.0.20/data --initialize-insecure --user=${USER}
CLionの設定からデバッグまで
CLionを起動してソースコードを開く。 このあと Preference > CMakeでCMake optionとかの設定
-DCMAKE_INSTALL_PREFIX=${HOME}/mysql/mysql_data/mysql-8.0.20 -DMYSQL_DATADIR=${HOME}/mysql/mysql_data/mysql-8.0.20/data -DSYSCONFDIR=${HOME}/mysql/mysql_data/mysql-8.0.20 -DMYSQL_UNIX_ADDR=${HOME}/mysql/mysql_data/mysql-8.0.20/data/mysql.sock -DWITH_DEBUG=1 -DWITH_BOOST=${HOME}/mysql/mysql_source/mysql-8.0.20/boost
右上の実行Debug Configureからmysqldを選択し 実行の引数の設定をする。
--basedir=${HOME}/mysql/mysql_data/mysql-8.0.20 --datadir=${HOME}/mysql/mysql_data/mysql-8.0.20/data
このときにBefore launchからビルドを外して、都度ビルドしないようにしておく。 あとはデバッグでmysqldを起動し、do_commandとかにブレークポイントをおいて止まってくれるか確認する。
注意:2020年5月現在、macbook air 2020ではCLionがクラッシュする。
https://youtrack.jetbrains.com/issue/JBR-2310
VMオプションとかを変えて凌ぐしかなさそう…