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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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 Content-Type Size
fix-debugger-linenumbering-on-91-2.patch text/x-diff 2.0 KB

In response to

Responses

Browse pgadmin-hackers by date

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