Отладка пользовательских функций PostgreSQL - PullRequest
5 голосов
/ 29 июня 2010

Я беру на себя разработку набора пользовательских функций и пользовательских агрегатов, написанных для PostgreSQL, и у меня возникают трудности с диагностикой того, что приводит к тому, что код постоянно вызывает ошибку.Кто-нибудь знает, если / как можно использовать GDB с UDF, написанным на C ++?Несколько поисковых запросов в Google ничего не нашли.Ранее я использовал ELOG для отладки пользовательских функций, но этот проект достаточно сложен, и мне нужно что-то более мощное.

Спасибо, Кевин

1 Ответ

2 голосов
/ 29 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...