/opt/pg18d/bin/psql -p 5435
postgres=# select pg_backend_pid();
pg_backend_pid
2543087
(1 row)
postgres=#
gdb postgres 2543087
gdb postgres 2543087
GNU gdb (Red Hat Enterprise Linux) 16.3-2.0.1.el9
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html\>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/\>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/\>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
postgres: No such file or directory.
Attaching to process 2543087
Reading symbols from /opt/pg18d/bin/postgres...
Reading symbols from /lib64/libz.so.1...
Reading symbols from /usr/lib/debug/usr/lib64/libz.so.1.2.11-1.2.11-40.el9.x86_64.debug...
Reading symbols from /lib64/libm.so.6...
Reading symbols from /usr/lib/debug/usr/lib64/libm.so.6-2.34-275.0.1.el9_8.x86_64.debug...
Reading symbols from /lib64/libicui18n.so.67...
Reading symbols from /usr/lib/debug/usr/lib64/libicui18n.so.67.1-67.1-10.el9_6.x86_64.debug...
Reading symbols from /lib64/libicuuc.so.67...
Reading symbols from /usr/lib/debug/usr/lib64/libicuuc.so.67.1-67.1-10.el9_6.x86_64.debug...
Reading symbols from /lib64/libc.so.6...
Reading symbols from /usr/lib/debug/usr/lib64/libc.so.6-2.34-275.0.1.el9_8.x86_64.debug...
Reading symbols from /lib64/ld-linux-x86-64.so.2...
Reading symbols from /lib64/libstdc++.so.6...
Reading symbols from /usr/lib/debug/usr/lib64/libstdc++.so.6.0.29-11.5.0-14.0.1.el9.x86_64.debug...
Reading symbols from /lib64/libgcc_s.so.1...
Reading symbols from /usr/lib/debug/usr/lib64/libgcc_s-11-20240719.so.1-11.5.0-14.0.1.el9.x86_64.debug...
Reading symbols from /lib64/libicudata.so.67...
Reading symbols from /usr/lib/debug/usr/lib64/libicudata.so.67.1-67.1-10.el9_6.x86_64.debug...
(No debugging symbols found in /usr/lib/debug/usr/lib64/libicudata.so.67.1-67.1-10.el9_6.x86_64.debug)
Thread debugging using libthread_db enabled
Using host libthread_db library "/lib64/libthread_db.so.1".
0x00007fef2410fdda in epoll_wait (epfd=6, events=0x2ef6990, maxevents=1, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
30 return SYSCALL_CANCEL (epoll_wait, epfd, events, maxevents, timeout);
(gdb)
设置断点:
(gdb) b ExecResult
Breakpoint 1 at 0x7c6677: file nodeResult.c, line 69.
(gdb)
psql执行select 1;
postgres=# select 1;
gdb输入c
(gdb) c
Continuing.
Breakpoint 1, ExecResult (pstate=0x2fd3768) at nodeResult.c:69
69 ResultState *node = castNode(ResultState, pstate);
(gdb)
gdb输入bt

gdb输入list可以查看当前

gdb输入up,down
