MySQL开发

一.开启Debug日志MySQL提供了trace机制方便定位1.cmake时要开启编译选项-DWITH_DEBUG=1-DCMAKE_BUILD_TYPE=Debug这两个参数2.设置trace日志的路径,export MYSQL_DEBUG=d:t:O,/tmp/client.trace。如果不配置,默认保存在tmp/mysql.trace3.mysql启动的时候,需要增加--...
摘要由CSDN通过智能技术生成

 

一.开启Debug日志

MySQL提供了trace机制方便定位

1.cmake时要开启编译选项-DWITH_DEBUG=1 -DCMAKE_BUILD_TYPE=Debug这两个参数

2.设置trace日志的路径,export MYSQL_DEBUG=d:t:O,/tmp/client.trace。如果不配置,默认保存在tmp/mysql.trace

3.mysql启动的时候,需要增加--debug参数,如:bin/mysqld --defaults-file=../etc/my_8130.cnf --debug

4.由于是处于调试模式,建议一个链接一个线程,即修改配置文件,配置:thread_handling =   0

5.开启trace日志后,可以利用 DBUG_PRINT("info", ("get_first_used_partition:%d",part_id)); 宏来调试输出

 

二、GDB调试

core文件调试

bt获取到调用堆栈后

f 数字:进入对于的函数堆栈

p 变量:变量如果是指针需要带*,对于this指针,p *this会打印出变量的结构体

打印变量格式化:set print pretty on

 

attach调试

1.attach pid 

2.设置断点,基于原函数  比如:b Item_func_murmurHashCodeAndMod::val_int

3.继续向下执行 c

4.触发断点后,执行bt

5.需要向下单步调试s(或者c直接向下执行)

6.清除所有断点:

先查看所有断点:info break

删除单个断点:delete 1 删除#1断点

删除所有断点:delete break

 

三.MySQL测试用例集

首先cmake的时候需要增加参数 -DINSTALL_MYSQLTESTDIR=${路径}

这个路径一般都放在和bin目录平级的目录,再cmake install说的时候自动安装拷贝到该目录

 

./mtr      执行所有的测试用例集

./mtr --suite="tdsql_hide_partitions"     执行suite目录下tdsql_hide_partitions目录下所有的测试集

./mtr --do-test="binlog_xa_prepared_disconnect" 执行t/目录下对于的test文件,如mysql-test/t/binlog_xa_prepared_disconnect.test

./mtr --mysqld="--lock_wait_timeout=100"     指定超时参数

注意:

1.mtr执行的时候可能会遇到result文件和实际执行结果是一样的,但是由于wiondws和unix下的换行编码问题,导致md5不一样,需要对windows下的result文件中的回车做转码处理:sed -i 's/\r//' 文件

2.mtr会在mysql-test/var/log下创建一个msyql临时实例用来测试

 

q其他参数:

nowarnings:mysql-test执行的时候遇到mysql错误日志中的warnings也会自动停止,所以我们一般要带上--nowarnings参数;

big-test:某些被标记为”big“的测试用例默认是不执行的,所以我们一般也带上参数--big-test;

force:一般情况下,一旦有测试用例失败mtr会自动退出,所以我们一般加上--force参数,发生错误后强制继续向下执行;

mysqld:指定mysqld启动的默认参数: --mysqld="--innodb_b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值