GDB调试postgresql
1. 调试服务端的连接子进程
- 先gdb attach xxx(postgres进程)
- 在fork子进程前设置断点
b BackendStartup - 父进程运行到断点处,设置gdb参数follow-fork-mode
set follow-fork-mode child - 设置子进程的断点(自己提前找到子进程会走到的代码)
b exec_parse_message - 继续运行(例:gdb c命令)父进程,就会自动进入子进程断点
2. 调式JDBC驱动的链接
- 先gdb attach xxx(postgres进程)
- 在以下几个入口函数打断点
- exec_simple_query
- exec_parse_message
- exec_bind_message
- exec_execute_message