Re: PATCH: Handle the cross type of debugging (context & in-context) on same function at the same time

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: PATCH: Handle the cross type of debugging (context & in-context) on same function at the same time
Date: 2013-07-08 13:30:34
Message-ID: CA+OCxowaS4w1SZKeWF-ib=F=crrKae70i1rYQa_PAf0jYQX1xw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi

On Fri, Jul 5, 2013 at 8:14 AM, Ashesh Vashi
<ashesh(dot)vashi(at)enterprisedb(dot)com>wrote:

> Hi Dave,
>
> During testing of the debugger, our (EnterpriseDB's) QA found an issue.
> Please found the scenario:
>
> 1. Start a global (in-context) debugging session on a function (by
> clicking on Debugging -> Set breakpoint)
> 2. And, then start the direct debugging session on the same function (by
> clicking on Debugging -> Debug)
>
> As the global debugging session is already waiting for this function, the
> debugging will start in that environment.
> Now - if we try to close the direct debugging session, pgAdmin will throw
> an error saying pldbg_abort_target() does not exist.
>
> Because - the direct debugging session has not yet started, we do not have
> the session-id in that environment.
> Hence, we need to inform only the execution connection to get terminated,
> and that resolved the issue.
>
> But - other problem came up, when we once again close the direct debugging
> session. As we're already in the closing operation,
> it once again try to close the execution connection, which is not write
> and this time the pgAdmin became unresponsive.
>
> In order to resolve this problem, we need to introduce the flag to let
> know the debugger frame that we're already in process of stopping
> the session.
>
> Please find the patch, which will resolve this issue.
>

This has a really weird effect:

- Set a global break point on a function.

- Start to direct-debug the same function.

- Enter the function parameters and start debugging.

- The execution is captured by the global session.

- Run the function to completion

- The result is displayed in the direct session.

The attached screenshot shows what I mean (I hope).

Please also find an updated patch attached, that fixes spelling and
language issues.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Attachment Content-Type Size
Screen Shot 2013-07-08 at 14.29.21.png image/png 272.4 KB
handle_cross_multi_session_debuging.patch application/octet-stream 6.3 KB

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2013-07-08 13:43:54 pgAdmin III commit: If the function, which is being debugged, raise too
Previous Message Dinesh Kumar 2013-07-08 13:03:54 Re: pgAdmin Event Trigger Compatibility