gdb调试-基于PostgreSQL中的PortStart函数

1. 简述

本例是使用gdb对postgres中insert语句的源码进行调试,查看PortStart函数中将的portal值为例进行讲解。

2. 调试环境

软件版本:gcc -v(6.1.0 (GCC) )、gdb(GNU gdb (GDB) 7.8.2)、postgres(9.6.2)

调试窗口:打开两个窗口,psql窗口用来做insert输入,gdb窗口调试PortalStart函数

3. 打开psql窗口

以postgres用户输入psql进入postgres客户端;

# 构建测试测试数据库和表

create database testdb;

\c testdb;

CREATE TABLE test (

id int NULL ,

name varchar(200) NULL ,

age int NULL

);

# 插入语句

insert into test(id,name,age) values('1','aaa','23');

# psql端截图


4. 以tui模式进入gdb

# 在进程列表中选出本地的postgres客户端(psql)

gdb postgres -tui `ps -ef|grep '\[local\] idle' | awk '{print $2}'`

5.进行调试

# 设置断点

b PortalStart

# 触发断点(psql insert)

# continue

# 查看变量信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容