Maison > base de données > tutoriel mysql > le corps du texte

MySQL源码构建和在Gdb中调试的配置过程

WBOY
Libérer: 2016-06-07 17:06:14
original
1019 Les gens l'ont consulté

环境:rhel 5 64-bit 一个快被我用烂了的Linux,但是一直没重装过,因为一直保留有快照,万一不行了还原下,呵呵。网上有用BitKe

通过源码学习C++是我一直以来的习惯,上个月把SGI’s STL源码捣鼓了一下,毕竟是在Win下,配置过程还是很顺利的,这个可以参考侯杰的STL源码,一有空我就深入STL,那个才是基础啊。

但是光有基础是不够的,于是MySQL成了我第三个开源项目的被解剖者,第一个是Myseelite,因为当时要做一个P2P流媒体播放器,是基于那个项目的并且移植到Win下,当然这个是实践性最强的一个项目了。MySQL,STL,Linux这些源码也只能抽空小改改,没有时间完全深入,这个还是很郁闷的,因为白天要上班,项目还是比较紧的那种。

环境:rhel 5 64-bit 一个快被我用烂了的Linux,但是一直没重装过,因为一直保留有快照,万一不行了还原下,,呵呵。

网上有用BitKeeper下MySQL源码,估计是类似是CVS SVN的版本控制,下了没用还只能找到2.0版本的,访问了他提供的地址,连源码都找不到,是不是被撤了也不知道,反正网上能下到源码,干吗还用版本控制。

这个网站能下到源码,有4.1.18还有5.0.18的,我下了前者。

前期准备,gcc,autoconf,automake,m4,make等各种工具,我的rhel 5都装好了。

$ tar zxvf mysql-4.1.18.tar.gz

$ cd mysql-4.1.18

$ cp BUILD/compile-pentium-debug BUILD/compile-generic-debug

$ vim BUILD/compile-generic-debug

将文件设置如下:

#! /bin/sh

 

path=`dirname $0`

. "$path/SETUP.sh"

 

extra_flags="-g  $debug_cflags"

c_warnings="$c_warnings $debug_extra_warnings"

cxx_warnings="$cxx_warnings $debug_extra_warnings"

extra_configs=""

 

. "$path/FINISH.sh"

 

$ BUILD/compile- generic-debug   生成make文件

$make test

如下这步可选,如果你要将MySQL安装到系统目录,那么可以执行

$make install

当然还可以用 $./configure 配置选项

接下来就是最重要的调试了

$cd到mysql-test目录下

$cd t

在t目录下你会发现有很多.test文件,文件内容全是sql语句,是预存在MySQL下提供给我们测试的,当然也可以自己新建一个.test文件,里面写上自己要测试的代码。

测试:

$./mysql-test-run –gdb 测试文件名称(注意不带test)

比如测试drop.test文件,那么命令行便是

$./mysql-test-run –gdb drop

运行后会跳出gdb调试窗口,会跳到mysql_parse()函数中的一个预设断点中。

调试完成后,控制台会提示测试结果。

linux

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!