您的位置:首页 > 数据库 > MySQL

Setting Up MySQL Debugging Environment

2016-05-10 10:19 627 查看

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Setting Up MySQL Debugging Environment



Setting Up MySQL Debugging Environment

Table of Contents

1. Get the source files from mysql.

2. Compile & Install with cmake/make.

3. Start mysqld, the server.

4. Start another termial window, and start a client.

5. Enjoy it!

It is strongly recommened to refer to the mysql documentation for debugging and
compiling mysql sources. After configuring the debugging environment, I write
this post to make further environment setting easier with just few scirpts
running for others who are trying to understanding the internals of MySQL.

In the following setting, I assume you are working on a linux machine, and you
are carrying on with the process of "modifying-recompiling-testing" the
functions of mysql. So I suggest installing the mysql binaries into a tempory
directory, /dev/shm, which is backed by DRAM, you will get good performance.

1 Get the source files from mysql.

I will leave out the details of this step, follow the guidelines from the
mysql website.

2 Compile & Install with cmake/make.

The latest mysql uses cmake to configure the features of mysql and uses
make to compile and install. Using the following scirpts to automate the
configuring and installation.

In the topmost directory of mysql source tree, issue the following commands:

mkdir bld
cd bld
#this makes the bld directory hold the output files
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j16
rm -rf /dev/shm/usr
#install to the shm directory
make install DESTDIR="/dev/shm"
#Install the system tables
/dev/shm/usr/local/mysql/scripts/mysql_install_db –basedir=/dev/shm/usr/local/mysql –datadir=/dev/shm/usr/local/mysql/data
Alternatively, you can copy the contents of the above commands into a shell,
and execute that script each time you modify the source files.

3 Start mysqld, the server.

We use gdb to start the mysqld process so that we can debug the code.

gdb –args /run/shm/usr/local/mysql/bin/mysqld –basedir=/run/shm/usr/local/mysql –datadir=/run/shm/usr/local/mysql/data –skip-networking


Add a breakpoint:



Issue run command in gdb window, to start the server process.



The message in red box shows the client can connect to the server with the socket.

4 Start another termial window, and start a client.

/dev/shm/usr/local/mysql/bin/mysql -S /tmp/mysql.sock
Now the server is stopped at the breakpoint.



5 Enjoy it!

Author: wujing

Created: 2016-05-10 Tue 10:19

Emacs 24.5.1 (Org mode 8.2.10)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: