# 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