mysql 函数 debug_Mysql的Debug模式实现

本文介绍了如何开启MySQL的Debug模式,通过在cmake时添加-WITH_DEBUG=1参数,并设置环境变量MYSQL_DEBUG,以追踪代码执行。详细解析了DBUG_ENTER等宏的定义,展示了在不同编译配置下如何控制调试代码的行为。
摘要由CSDN通过智能技术生成

前一段领导开发了一个内核的模块,测试的过程中,发现导致MYSQL客户端无法连接服务器。

经过查询文档,追根溯源,终于找到了MYSQL实现链接客户端的代码,在源文件sql-common/client.c里的 CLI_MYSQL_REAL_CONNECT 函数。

但是代码很长,一时半会儿肯定看不明白。这个时候发现,发现代码当中有很多这样的代码:

DBUG_ENTER("mysql_real_connect");

说明只要以调试模式启动MYSQL,就可以跟踪代码的执行。

经过查询文档和测试,只要在 cmake 的时候,增加参数 cmake -WITH_DEBUG=1 就可以了。

然后启动一个MYSQL客户端程序之前,更改一个环境变量:

export MYSQL_DEBUG=d:t:O,/tmp/client.trace

好牛逼啊!我们不禁感叹。之余,学习了一下这个调试模式的具体实现:

在 CMakeList.txt 中,有这么一段代码:

IF(WITH_DEBUG)

SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING ${BUILDTYPE_DOCSTRING} FORCE)

IF(NOT CMAKE_BUILD_TYPE

AND NOT CMAKE_GENERATOR MATCHES "Visual Studio"

AND NOT CMAKE_GENERATOR MATCHES "Xcode")

# This is the case of no CMAKE_BUILD_TYPE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值