Re: Debugging PostgreSQL with GDB

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Manolo SupaMA <manolo(dot)espa(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Debugging PostgreSQL with GDB
Date: 2008-04-01 15:43:24
Message-ID: 47F2581C.2020801@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Manolo SupaMA wrote:
> Hi.
>
> I have problems on how to debug PostgreSQL on Linux using GDB. I made
> some changes to src/backend/utils/sort/tuplesort.c but it hangs while
> performing run formation (where my changes are).
>
> I configured it using
>
> ./configure --prefix="/usr/local/pgsql/8.3/" CFLAGS="-O0 -DTRACE_SORT"
> --enable-debug --enable-cassert --enable-depend
>
> and trying to debug it using
>
> 'gdb postmaster'
> (which revealed to be not a very good idea) and
> 'gdb pg_ctl' followed by 'run -D /usr/local/psql/data'
>
> This last choice allowed me to set a breackpoint on puttuple_common
> (contained into tuplesort.c) but then I'm unable to run 'psql'.
> http://pastebin.com/m6a97b4dd
>
> I'm new on GDB and it's also my first postgrest patch. I just want
> some suggestion to know if I'm on the right way or not.
>
> Thanks for your time.
>
> PS: I suppose I'll write some related "HowTo Debug PostgreSQL with
> GDB - Basics" for newbies like me.

The way to do this is to start the postmaster normally, run psql, and
then attach the debugger to the backend that is talking to your psql
session.

I would also personally advise using a gdb frontend like ddd. I am also
told eclipse can work well.

cheers

andrew

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2008-04-01 16:00:10 Several tags around PostgreSQL 7.1 broken
Previous Message korry 2008-04-01 15:42:00 Re: Debugging PostgreSQL with GDB