gdb调试MySQL如何打断点_用gdb调试mysql

用gdb调试mysql

mysql的源代码很多,估计有百万行以上了,如何能够快速了解其内容,跟踪代码运行是一个好方法。mysql的调试有很多方法,下面来探讨一下用其自带的mysql-test-run命令和gdb调试。

首先进入mysql-test/t

p1

0818b9ca8b590ca3270a3433284dd417.png

这个目录下面有很多测试用例,就是很多用来测试的sql语句

p2

0818b9ca8b590ca3270a3433284dd417.png

新建一个名为example.test的文件,在里面输入select 1;

p3

0818b9ca8b590ca3270a3433284dd417.png

输入以下命令建立record

p4

0818b9ca8b590ca3270a3433284dd417.png

输入./mysql-test-run --gdb example开始调试

p5

0818b9ca8b590ca3270a3433284dd417.png

我们可以看到gdb窗口打开了并在main函数那里遇到断点停下来

p6

0818b9ca8b590ca3270a3433284dd417.png

输入c,让程序继续运行,稍等片刻程序在port 3000等待客户端连接

p7

0818b9ca8b590ca3270a3433284dd417.png

打开一个客户端,命令./mysql -uroot -h127.0.0.1 --port13000即可以连接到服务器

p8

0818b9ca8b590ca3270a3433284dd417.png

我们打开mysql的源代码,假设要调试mysql_insert 函数

p9

0818b9ca8b590ca3270a3433284dd417.png

在gdb里按下ctrl+C,然后输入b Sql_cmd_insert::mysql_insert在改函数处设置断点

p10

0818b9ca8b590ca3270a3433284dd417.png

然后我们依次创建一个数据库和表。插入数据

p11

0818b9ca8b590ca3270a3433284dd417.png

在gdb里输入c,继续程序的运行,我们可以看到程序在Sql_cmd_insert::mysql_insert处暂停

p12

0818b9ca8b590ca3270a3433284dd417.png

接下来就可以用gdb的命令来跟踪程序的运行了,具体参考gdb的手册

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值