mysql源代码,编译的时候要注意添加如下选项,增加symbol
./configure --with-debug
使用git来查看自己对源代码做过的改动,方便发现代码的变化
sudo apt-get install git-doc sudo apt-get install git-core
把mysql代码加入到git里
cd mysql-source git init git add *.h git add *.c git add *.cc
安装cscope,方便快速切换。
具体的步骤见这篇文章。
愿意的话可修改一下cscope.vim 文件里的nmap
nmap s :vert scs find s =expand("") nmap g :vert scs find g =expand("") nmap c :vert scs find c =expand("") nmap t :vert scs find t =expand("") nmap e :vert scs find e =expand("") nmap f :vert scs find f =expand("") nmap i :vert scs find i ^=expand("")$ nmap d :vert scs find d =expand("")
这样的好处就是ctrl+] 调到函数内部,ctrl+n+g 跳出垂直窗口显示代码
gdb调试会涉及到重复set args,我们可以利用gdb的macro-file来避免重复的输入。
涉及到多线程编程,为了让其他线程继续运行,需要设置
set scheduler-locking off
另外mysql对SIGINT设置了sigprocmask。启动mysqld时需设置参数–gdb
于是我们的macro-file就是
b main r --user=mysql --gdb set scheduler-locking off
开始debug
gdb mysqld -x macro-file
觉得文章有用?立即:
和朋友一起 共学习 共进步!