一:GDB调试入门

切换到root下执行

查看进程号:

ps -ef | grep postgres

连接进程

gdb postgres **16581**

打断点

b ExecResult

执行SQL

select 1
SQL会卡在那里动不了, 使用c命令继续执行,然后再断点处(ExecResult)停止

查看堆栈

bt:显示不全

continue run //运行程序,停止在断点处
list //显示代码,也可以list n(n表示从第n行开始显示代码,用区间也可以)
step //表示单步执行
run //因为没有下一个断点了,所以会一直执行到程序结束

G跳到行尾部vi

image.png
git -r可以重新运行到当前的断点
多看看gdb的命令的含义

gdb —args /repl/build/runtime_output_directory/mysqld —basedir=/usr/local/mysql-rep —datadir=/usr/local/mysql-rep/data/3308 —skip-grant-tables —bind-address=127.0.0.1 —port=3308
先打断点然后 run

看官方文档可以解决一些网上没有的

/repl/build/runtime_output_directory
调试注意
image.png

以root启动

image.png
授权安装文件夹给普通用户

回复 赞