Skip site navigation (1) Skip section navigation (2)

Re: Debugger line numbering is off by one

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: Debugger line numbering is off by one
Date: 2012-04-26 10:42:19
Message-ID: 4F99268B.5000506@enterprisedb.com (view raw or flat)
Thread:
Lists: pgadmin-hackers
On 25.04.2012 14:22, Dave Page wrote:
> On Wed, Apr 25, 2012 at 11:24 AM, Heikki Linnakangas
> <heikki(dot)linnakangas(at)enterprisedb(dot)com>  wrote:
>>
>> The hack that was removed skipped an initial newline when counting line
>> numbers. The PL/pgSQL debugger has a similar hack, but it didn't get the
>> memo that it was removed in the backend, so the green current line marker is
>> off by one when connected to a 9.1 server. Attached is a patch to fix that.
>
> Hi
>
> It looks fine, except that the "Paused at line" message in the status
> bar is still off by one. I tried using the offset you calculated there
> as well, and things started getting really weird (like, starting on
> line -15, then after single stepping, going back to being 1 off). I
> assume that the offset is being used there before it's actually
> calculated, but don't have time to play further right now.

I simply missed that, and didn't adjust it with the offset like i did 
elsewhere.

I also just noticed that the line numbers displayed in the stack window 
are also off by one. They would be hard to adjust with the approach I 
tried, because you need the source of a function before you know whether 
there's a newline in the beginning, and we don't load the sources for a 
function until you display it. And the line numbers in any error 
messages you get on the console also won't match what we display.

This becomes particularly visible if you enable line numbering in the 
left margin. I tried to be clever and merely hide the first blank line 
in the text box, so that the control's numbering would seem to start 
from 2, but I couldn't get wxStyledTextCtrl::HideLines() to hide the 
first line. If you pass it 0, it does nothing, and 1 means the 2nd line. 
Ugh.

I think we have to give up on hiding the initial newline. A blank line 
in the beginning is a bit ugly, but it's better to be consistent. 
Attached is a patch to do that.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

Attachment: fix-debugger-linenumbering-on-91-2.patch
Description: text/x-diff (2.0 KB)

In response to

Responses

pgadmin-hackers by date

Next:From: Heikki LinnakangasDate: 2012-04-26 10:51:09
Subject: Fix debugging on EDB with latest pldebugger
Previous:From: Dave PageDate: 2012-04-25 15:22:06
Subject: pgAdmin III commit: Silence a GCC warning.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group