2010-06-29 4 views
5

Je suis en train de prendre en charge le développement d'un ensemble de fonctions définies par l'utilisateur et d'agrégats définies par l'utilisateur écrites pour PostgreSQL, et j'ai du mal à diagnostiquer le problème. Est-ce que quelqu'un sait si/comment il est possible d'utiliser GDB avec un UDF écrit en C++? Un couple de recherches google n'a rien révélé. J'ai déjà utilisé ELOG pour déboguer les UDF, mais ce projet est assez complexe pour que j'ai besoin de quelque chose d'un peu plus puissant.Débogage des fonctions définies par l'utilisateur de PostgreSQL

Merci, Kevin

Répondre

2

Vous devriez être en mesure d'attacher gdb à un postgresql en cours d'exécution backend- bien que vous aurez probablement envie de vous assurer que votre build postgresql a des symboles de débogage gauche là pour faire que compréhensible. Si vous faites select pg_backend_pid(), vous obtiendrez l'identifiant de processus du backend auquel vous avez affaire, et vous pourrez y attacher gdb (en utilisant le commutateur --pid ou la commande attach). Cette approche n'est utile que si vous pouvez reproduire le problème en utilisant psql, par exemple, cependant: avoir de nouveaux processus backend attachés automatiquement pour être un gdb est ... plus difficile. Par exemple, vous pouvez définir des options telles que post_auth_delay pour que postgresql attende une fois l'authentification terminée, ce qui vous permet d'attacher le débogueur avant de poursuivre le traitement.

Questions connexes