Вы должны иметь возможность подключить gdb к работающему бэкэнду postgresql, хотя вы, вероятно, захотите убедиться, что в вашей сборке postgresql есть отладочные символы, чтобы сделать это понятным. Если вы сделаете select pg_backend_pid()
, то получите идентификатор процесса бэкэнда, с которым имеете дело, и сможете подключить к нему gdb (с помощью ключа --pid или команды attach
). Этот подход полезен только в том случае, если вы можете воспроизвести проблему, например, с помощью psql: автоматически подключить новые процессы бэкэнда к gdb ... сложнее. Например, вы можете установить такие параметры, как post_auth_delay
, чтобы postgresql ожидал после завершения аутентификации, давая вам возможность подключить отладчик, прежде чем он продолжит обработку.