问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么样使用CLion调试分析MySQL Server

发布网友 发布时间:2022-04-21 19:07

我来回答

2个回答

懂视网 时间:2022-04-07 15:22

操作步骤

1、下载源码

2、安装

./configure --prefix = 指定安装路径 --with-config-file-path = 指定配置文件读取路径 --with-iconv = 指定 iconv 安装的路径 --enable-debug
make && make install

3、使用 clion 创建 project

c683fc2c4ada08fdf7eff59e73be004.png

4、修改自动生成的 CMakeLists.txt 文件,注意源码路径要根据情况调整

 cmake_minimum_required(VERSION 3.14)
 project(php_7_2_4)
 set(CMAKE_CXX_STANDARD 14)
 set(PHP_SOURCE /usr/local/src/php-7.2.4)
 include_directories(${PHP_SOURCE}/main)
 include_directories(${PHP_SOURCE}/Zend)
 include_directories(${PHP_SOURCE}/sapi)
 include_directories(${PHP_SOURCE}/pear)
 include_directories(${PHP_SOURCE}/TSRM)
 include_directories(${PHP_SOURCE})
 add_custom_target(makefile COMMAND make && make install WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})

5、配置运行参数

306c82112eddce1061fb5064dca9cd8.png

6、在 sapi/cli/php_cli.c 文件中找到 main 函数,打断点

7、点击 debug 之后就可以进行调试了

daa412ed8fb80ecc5b93f5777d18ef2.png

遇到的问题

iconv 未安装,安装后提示 “ld: symbol (s) not found for architecture x86_64”

解决方法:

编辑项目根路径下的 Makefile, 修改 EXTRA_LIBS 变量,删除 - liconv, 添加 /usr/local/opt/libiconv/lib/libiconv.dylib

热心网友 时间:2022-04-07 12:30

由于在写MySQL日志订阅服务时候,需要确定在什么event之后保存position,所以就开始研究MySQL的源码,刚开始采用最原始的打印输出的方式去调试,然后每次改完编译运行,效率好低,让我很绝望,然后我花了些时间研究下怎么使用CLion Debug MySQL。
获取源码
git clone https://github.com/mysql/mysql-server

编译安装初始化数据库
cd mysql-server

cmake \
-DCMAKE_INSTALL_PREFIX=/path/mysql/install \
-DMYSQL_DATADIR=/path/mysql/data \
-DSYSCONFDIR=/path/mysql/etc \
-DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock \
-DWITH_DEBUG=1 \
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/path/mysql-server/ -DDOWNLOAD_BOOST_TIMEOUT=60000

make -j 4

make install -j 4

mysqld --initialize-insecure --user=root --datadir=/path/mysql/data

启动MySQL,测试下是否安装成功
/path/install/bin/mysqld --defaults-file=/path/mysql/etc/my.cnf

使用CLion新建工程并打开源码目录之后,设置CLion
CMake Options和你编译安装时的选项一致
-DCMAKE_INSTALL_PREFIX=/path/mysql/install
-DMYSQL_DATADIR=/path/mysql/data
-DSYSCONFDIR=/path/mysql/etc
-DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock
-DWITH_DEBUG=1

然后在CLion里,Reload CMake Project

在Run/Debug列表里就可以看到很多选项了

找到mysqld配置下启动参数
mysqld --defaults-file=/path/mysql/etc/my.cnf

然后以Debug模式启动,看下成功的效果
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抗击疫情祝福语简短 疫情早日结束愿大家平安(精选76句) 新肺炎防范祝福语 2024年为武汉加油的朋友圈祝福语暖心句子 qq对对碰为什么在QQ游戏客户端页面没有QQ对对碰游戏 关于山地车骑行装备 烧心反酸吃什么药缓解 反胃酸烧心吃什么药 我第第因为喜欢一位女孩不和他谈拉受刺激神经错乱厌世厌学 怎么办 精神错乱你了解了吗 溯洄从之道阻且长什么意思 制作蛋糕的奶油哪里可以买到 我今年24岁,能在度小满有钱花上面借钱吗? 做蛋糕的奶油哪里买? 有钱花真的能借钱吗? 一般做蛋糕用的奶油在哪里买 郴州金美伦乳脂奶油去哪里买 有钱花可以随借随还吗 泰安那里卖安佳奶油? 哪里可以买到鲜奶油 淡奶油? 请问有钱花借钱能借到多少呢? 如何在linux下使用Clion开发Qt的Gui程序 眉山哪里可以买到淡奶油 最近手头有点紧,想在度小满有钱花上借款,不知道... 用clion 学习c语言编程 不知道哪里出了问题 求解答... 做蛋糕的奶油上哪里买 有钱花一次可以借出多少钱? 在度小满有钱花上面借款,方便吗? 淡奶油在哪里可以买得到 clion C语言中为什么我的printf函数在scanf函数之... 奶油在哪买? 请问有钱花借钱的话一般能借多少呢? 找冬笋怎么找 为什么我的clion无法运行第二个c程序 什么是淡奶油啊,在哪里可以买到?超市有么? 请问度小满金融有钱花怎么样啊,可以在上面借钱吗? 鲜奶油在哪里买 资金周转不开了,想在度小满有钱花借款能借多少? 淡奶油哪里有的买? 有钱花是真的可以借嘛 各位,哪里可以买到淡奶油啊? 奶油在哪里可以买到 在有钱花上申请借款,需不需要抵押东西啊? 怎样找毛竹冬笋视频? 请问涂抹在生日蛋糕上的奶油在哪里可以买到? 有钱花贷款敢用吗 请问哪有卖奶油的-0- 我在有钱花贷款了没还清,还能贷款吗? 用什么打发液体奶油?在哪里买到? 老师请您听我说20字 求作文《老师,请您听我说》