Je fais référence à this pour activer le débogueur sur le serveur PostgreSQL afin de déboguer la fonction plpgsql en parcourant les codes à l'aide de pgadmin.
J'ai déjà défini shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'
dans le postgresql.conf
, courir pldbgapi.sql
et redémarré le serveur.
Ces étapes auraient dû être exécutées avec succès et plugin_debugger.dll
doit être chargé avec succès, comme cela peut être vérifié à l'aide de la commande show shared_preload_libraries
, et je peux voir l'option de débogage dans le menu contextuel avec un clic droit sur une fonction dans pgAdmin.
Lorsque vous choisissez "Debugging" -> Debug, une fenêtre apparaît pour me permettre d'entrer les valeurs des paramètres d'entrée. Mais après cela, lorsque j'appuie sur OK
, il ne répond plus du tout.
Des idées ou ai-je raté quelque chose dans la configuration du débogueur sur le serveur ??
J'utilise PostgreSQL 8.3 et pgAdmin 1.14
Vous devez activer le débogage à deux endroits. Sur PGAdmin et sur la base de données elle-même. Cet article auquel vous avez fait référence fait un excellent travail pour l'expliquer, mais il y avait quelques nuances.
PGAdmin
Lors de la mise à jour de votre postgresql.conf
fichier pour charger la bibliothèque de débogage, j'étais exécutant PGAdmin sous Windows donc le fichier était ici:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
Et le chemin vers le plugin_debugger.dll
était en fait
$libdir/plugin_debugger.dll
ne pas
$libdir/plugins/plugin_debugger.dll
comme spécifié dans l'article. Alors votre postgresql.conf
aurait besoin d'une ligne comme celle-ci
shared_preload_libraries = '$libdir/plugin_debugger.dll'
Recherchez le fichier .dll réel en cas de doute. Si vous êtes sous Linux, le fichier que vous recherchez est plugin_debugger.so
. N'oubliez pas que changer le postgresql.conf
le fichier nécessitera un redémarrage pour que la modification prenne effet.
Base de données PostgreSQL
En supposant que vous exécutez votre base de données PostgreSQL sur un serveur Linux ce Gist fait un excellent travail pour expliquer comment télécharger les dépendances pour activer le débogage. Assurez-vous que vous exécutez en tant que root lors de l'installation.
La partie qui est facile à manquer est de lancer la commande sur la base de données que vous souhaitez déboguer. Pour les versions plus récentes de PostgreSQL, tout ce que vous aurez à faire est le suivant:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
Si cela ne renvoie pas d'erreur, vous devriez être prêt à partir.
Quelques points supplémentaires à noter:
LANGUAGE c
PGAdmin n'affichera même pas d'option de menu Déboguer avec le bouton droit lorsque vous sélectionnez la fonction. Recherchez quelque chose qui a LANGUAGE plpgsql
et le menu Debug devrait s'afficher.Ken,
Avez-vous essayé pgAdmin 1.8 pour éliminer un problème d'interaction avec PgAdmin 1.14/PostgreSQL 8.3. Cela fait un moment que je n'ai pas utilisé 8.3 et pour l'article que j'ai écrit - auquel vous faites référence, je testais avec 1.14/PostgreSQL 9.1, donc cela pourrait très bien être un problème avec l'interaction avec une version plus ancienne. Malheureusement, je n'ai plus de 8.3 pour tester.
Je me souviens vaguement d'avoir eu le problème que vous aviez une fois, mais c'était quand j'avais une autre bibliothèque partagée dans mon postgresql.conf en plus du pldebugger. Je ne me souviens plus laquelle, mais la suppression de l'autre bibliothèque partagée a résolu mon problème.
J'espère que certaines de ces suggestions vous aideront, Regina
J'ai eu le même problème. Assurez-vous que la bibliothèque partagée seulement que vous chargez dans le postgres.conf est le débogueur. Rien d'autre. Pas même le profileur. Si vous obtenez une erreur SSL lorsque vous essayez de déboguer une fonction, reconnectez-vous au serveur.