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

From Dave Page
Subject Re: PATCH: Handle the cross type of debugging (context & in-context) on same function at the same time
Date
Msg-id CA+OCxowaS4w1SZKeWF-ib=F=crrKae70i1rYQa_PAf0jYQX1xw@mail.gmail.com
Whole thread Raw
In response to PATCH: Handle the cross type of debugging (context & in-context) on same function at the same time  (Ashesh Vashi <ashesh.vashi@enterprisedb.com>)
Responses Re: PATCH: Handle the cross type of debugging (context & in-context) on same function at the same time  (Ashesh Vashi <ashesh.vashi@enterprisedb.com>)
List pgadmin-hackers
Hi


On Fri, Jul 5, 2013 at 8:14 AM, Ashesh Vashi <ashesh.vashi@enterprisedb.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

pgadmin-hackers by date:

Previous
From: Dave Page
Date:
Subject: Re: pgAdmin Event Trigger Compatibility
Next
From: Dave Page
Date:
Subject: pgAdmin III commit: If the function, which is being debugged, raise too