On 1/3/22 16:54, Stanislav Bashkyrtsev wrote:
I tried debugging PostgreSQL to better understand how it works. It worked fine a day ago, but for some reason I have issues with debugging now:

- If I put a breakpoint before I start the process then everything works fine - But if I put/remove a breakpoint after it's fully initialized - the process just stops

And when reading the next command postgres.c, I see that input_message is empty. I assume CLion sends a signal which awakens PostgreSQL, but there's no data on the input? But should PostgreSQL quit in such a situation?


Why do you think postgres quits? AFAIK CLion uses gdb or lldb for debugging, which are the debugger of choice for many (most?) hackers on this list. So that should work fine.

The way I build and start:
make clean
./configure --enable-cassert --enable-debug CFLAGS="-ggdb -O0 -g3 -fno-omit-frame-pointer"
make
make install
/usr/local/pgsql/bin/initdb -D /Users/stas/projects/postgres/data

Starting command:
/usr/local/pgsql/bin/postgres --single -D /Users/stas/projects/postgres/data postgres

Now sure why you start it in single-user mode, but I don't think that should affect debugging. Try redirecting the output to a log file, maybe that'll tell you what happened.


regards

--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Reply via email to