On 16/05/2025 16:43, Takashi Yano wrote:
Hi Jon,
[...]

I could reproduce that. And also found cygwin 3.4.10 does not have this
issue. I'll look into this.

I could bisect the issue and found the next commit triggered the issue.

commit 91457377d6c9f89a08b1b70e45cbae87ef467119
Author: Jon Turney <jon.tur...@dronecode.org.uk>
Date:   Thu Jan 11 20:00:14 2024 +0000

[...]

Thanks for looking into this.

I also found the following patch fixes the issue. I'm not sure
this is the right thing, so could you please have a look?

diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 9763a1b04..aea2821f6 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -597,7 +597,7 @@ try_to_debug ()
      {
        extern void break_here ();
        break_here ();
-      return 1;
+      return 0;
      }
/* Otherwise, invoke the JIT debugger, if set */

Hmm... at this remove in time, I'm not sure why I made that change.

Well, "consistently return non-zero from try_to_debug() if we debugged", but maybe that misunderstands the meaning of the return value...

(I'm not sure what the pure bafflegab at the end of exception::handle() does to make things work differently, we exit with ExceptionContinueExecution in both cases.)

I think this is similar to/related to the problem [1], which I unfortunately never got around to investigating properly.

I think perhaps we should probably also restore the behavior of not trying to break_here() (==DebugBreak()) if no JIT debugger is configured. (i.e. try_to_debug() should just immediately return 0, if debugger_command is NULL).

(This would seem to make try_to_debug() less useful, as it then does nothing if you're just run under gdb, but it's what the code used to do...)

I'll put together a patch tomorrow.


[1] https://cygwin.com/pipermail/cygwin/2024-May/256058.html


--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to