本文分为X部分,在Linux中安装编译环境、安装MySQL 5.7、安装 GDB、最后,使用GDB调试程序
在本文使用Linux 的发行版是Centos 7
安装编译环境
yum install -y gcc c ncurses-devel cmake libaio bison openssl-devel
在官网下载 BOOST库,版本为 1.59 以上,解压到 /root/boost_1_59_0 \
安装 MySQL
下载MySQL源码,并解压
cd /root/mysql/
cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql \
-DWITH_BOOST=/root/boost_1_59_0 \
-DMYSQL_DATADIR=/opt/data \
-DMYSQL_UNIX_ADDR=/opt/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=0 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=0 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=0 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=0 \
-DWITH_DEBUG=1
上述命令会使MySQL 安装到 /opt/mysql 下
初始化启动MySQL
./mysqld --initialize-insecure --user=root --basedir=/opt/mysql --datadir=/opt/data
启动后,建议修改root密码,并且设置远程访问
update user set password=('Hello2021') where user='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;
安装GDB
建议安装版本高一些的GDB,安装9以上的版本
调试MySQL
启动 MySQL
ps -ef | grep mysql
gdb attch [mysql_pid]
#此时已经进入mysql的进程中
#设置断点
b [函数名字]
b [文件名:行号]