Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Installing the PL/pgSQL Debugger Extension (pldbgapi) for pgAdmin III on PostgreSQL 9.4 and Ubuntu 14.10
# PostgreSQL can be on a remote server but you'll need root privileges in Linux and superuser in PostgreSQL.
# First install build tools
sudo su
aptitude install build-essential
aptitude install postgresql-server-dev-9.4
# Clone and build the PL/pgSQL server-side debugger
cd /usr/local/src
git clone git://git.postgresql.org/git/pldebugger.git
cd pldebugger
export USE_PGXS=1
make
make install
# Find location of postgresql.conf at the PostgreSQL console:
# SHOW config_file;
nano /etc/postgresql/9.4/main/postgresql.conf
# In nano use ^W to search for: shared_preload_libraries
# Edit the entry to add the library 'plugin_debugger':
shared_preload_libraries = 'plugin_debugger'
# If you have multiple libs, coma separate:
shared_preload_libraries = 'pg_stat_statements,plugin_debugger'
# Restart PostgreSQL
pg_ctlcluster --mode fast 9.4-main restart
# In a PostgreSQL database that you want to enable debugging install the extension
CREATE EXTENSION pldbgapi;
# In pgAdmin navigate to the same database and right click a PL/pgSQL function.
# In the context menu choose Debugging > Debug.
# A Debugger window will open and prompt for any parameters.
# It will then break on the first line of executable code.
# BRILLIANT!
# More info from the creators at:
# http://bit.ly/1Gaq51P
# http://git.postgresql.org/gitweb/?p=pldebugger.git;a=blob_plain;f=README.pldebugger;hb=HEAD
@ReinsBrain

This comment has been minimized.

Copy link

commented Jan 11, 2016

Can't seem to get past make of pldebugger (missing Makefile.global and /contrib/conttrib-global.mk):

Makefile:32: ../../src/Makefile.global: No such file or directory
Makefile:33: /contrib/contrib-global.mk: No such file or directory
make: *** No rule to make target `/contrib/contrib-global.mk'.  Stop.

Any suggestions why that might be? Thanks :)

@ReinsBrain

This comment has been minimized.

Copy link

commented Jan 11, 2016

Also wondering if it is possible to remote debug - my development databases are running in vagrant (virtualbox) instances so i access them via tcp... perhaps you might know and could steer me in the right direction - thanks again

@JoelBCarter

This comment has been minimized.

Copy link

commented Jan 21, 2016

This saved me hours. Thank you so much.

@ReinsBrian It's totally possible to debug Vagrant (VirtualBox) PostgreSQL databases. I'm actually doing it right now. You just need to make sure the proper ports are forwarded back to your host machine. Something in your Vagrantfile like:

        # If running under VirtualBox
        config.vm.provider "virtualbox" do |v, override|
            # Forward the default postgres port (5432) for access by the host machine, using
            # pgAdmin for example
            override.vm.network "forwarded_port", guest: 5432, host: 5433, id: "postgres"
        end

I forwarded it to 5433 to avoid any port collisions with any Postgres instances running locally (on the host machine). Then just connect to your database (via PGAdmin or however you want) at 127.0.0.1:5433.

@JoelBCarter

This comment has been minimized.

Copy link

commented Jan 22, 2016

@ReinsBrian I got that same error you're seeing when I wasn't running as root. Make sure you're doing sudo su before everything like the gist shows and not just sudo make.

@tendres

This comment has been minimized.

Copy link

commented Dec 12, 2016

Try make NO_PGXS=1, make install NO_PGXS=1

@uidz3r0

This comment has been minimized.

Copy link

commented Sep 7, 2017

I just did the following to get rid of that missing Makefile problem:

sh
export USE_PGXS=1
gmake; gmake install
  • AJ
@slavafomin

This comment has been minimized.

Copy link

commented Sep 29, 2017

You will also need these packages in order to compile the extension under Ubuntu:

$ sudo apt-get install libssl-dev libkrb5-dev

@jflambert

This comment has been minimized.

Copy link

commented Nov 22, 2017

when making, is there a way to specify which postgresql-server-dev version to use? On my system I have all of them, up until 10, but I specifically want to compile for 9.6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.