mysql使用dbug来调试跟踪源代码

dengfeng

贡献于2013-07-16

字数:0 关键词: MySQL 数据库服务器

DBUG a c program debugging package, by Fred Fish. http://sourceforge.net/projects/dbug mysql 使用 dbug 来调试跟踪源代码 Section 1:dbug 的基本介绍 dbug example: #include int main () { int result, i; DBUG_ENTER ("main"); for (i=0,result=0; i != 100; i++) { DBUG_PRINT ("info", ("i : %d\n", i); result += i; } DBUG_RETURN (0); } dbug package提供的一些方法(仅列出最常用的): 1. DBUG_ENTER 进入函数时调用,参数是一个字符串.且必须要有一个 DBUG_RETURN相配对. EX: DBUG_ENTER ("main"); 2. DBUG_RETURN 退出某个函数时调用,参数是返回值. EX: DBUG_RETURN (value); EX:DBUG_VOID_RETURN; (无返回值时) 3. DBUG_PRINT 最常用,输出信息.两个参数,第一个参数是一个keyword,第二个参 数是printf的format string. EX: DBUG_PRINT ("eof", ("end of file found")); EX: DBUG_PRINT ("type", ("type is %x", type)); EX: DBUG_PRINT ("stp", ("%x -> %s", stp, stp -> name)); Section 2:mysql 中使用 dbug mysql 中如何使用 debug 跟踪调试代码. 1. 编译的时候加上—debug 参数: ./configure –with-debug 2. mysql 默认已经在代码中的很多地方都加上了 DBUG_XXX 了,而且 很详细.比如在很多函数的入口加上了 DBUG_ENTER(“函数名”),在 一些地方DBUG_PRINT()打印输入重要变量的值.当然你也可以自己 在需要的地方添加 DBUG_XX,来观察你所关心的信息.(添加完了记 得重新 make) 3. 启动 mysql 的时候加上参数:mysqld_safe --debug& 4. 启动后,mysql 默认在/tmp/下生成 mysqld.trace 文件,记录了所有的 dbug 跟踪信息.这个文件是会动态更新的. trace 文件示例: T@1 : >init_tmpdir T@1 : | enter: pathlist: NULL T@1 : | >init_dynamic_array T@1 : | | >my_malloc T@1 : | | | my: size: 8 my_flags: 0 T@1 : | | | exit: ptr: 0x6aed620 T@1 : | | cleanup_dirname T@1 : | | enter: from: '/tmp' T@1 : | | exit: to: '/tmp' T@1 : | my_malloc T@1 : | | my: size: 5 my_flags: 16 T@1 : | | exit: ptr: 0x6aed640 T@1 : | init_tmpdir 中的>的意思是进入函数. 3.

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档

相关文档