首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql源码中有'DBUG_ENTER‘函数,现在我用GDB调试服务器,如何打开'DBUG_ENTER’开关打印日志?

mysql源码中有'DBUG_ENTER‘函数,现在我用GDB调试服务器,如何打开'DBUG_ENTER’开关打印日志?
EN

Stack Overflow用户
提问于 2014-12-15 21:04:51
回答 2查看 578关注 0票数 0

例如,我将删除一个表中使用innodb引擎的一行,以及如何在控制台上输出调试信息,如DBUG_ENTER。

EN

回答 2

Stack Overflow用户

发布于 2014-12-15 21:11:53

这些是在编译时展开的宏。要使用它们,您可能需要在调试模式下重新编译MySQL。在正态分布中,它们什么也不做。

但是,为什么首先要对mysql服务器进行调试呢?

票数 0
EN

Stack Overflow用户

发布于 2015-07-03 13:45:10

简而言之,正如@geert3所述,使用debug info重新编译,并使用debug标志运行服务器。

Ubuntu中的MySQL 5.6。

您需要从源代码获取mysqld,并使用调试信息:cmake -DWITH_DEBUG=1进行编译。您可能希望添加选项-DCMAKE_INSTALL_PREFIX=/your/test/dir以不破坏MySQL原始安装。然后,像往常一样,使用make; make install;

手动启动测试服务器。在Ubuntu中:调试(注意添加了-- export PATH=/your/test/dir/bin:$PATH; export LD_LIBRARY_PATH=/your/test/dir/lib:$LD_LIBRARY_PATH; sudo /your/test/dir/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid --debug 标志)。

如果您不确定如何在您的特定平台上启动它,请检查安装的服务管理器如何启动它。在Ubuntu中,在设置PATHLD_LIBRARY_PATH变量之前:sudo service mysql start; ps -ef|fgrep mysqld

就这样。DBUG_ENTER不会将跟踪发送到控制台。它们被发送到/tmp/mysqld.trace

要停止您的测试服务器,在Ubuntu中,找到测试服务器PID信号并向它发送术语sudo cat /var/run/mysqld/mysqld.pid kill <your-server-PID>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27484768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档