This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Fix SetThreadName with current gdb


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=eccefd9704a1e4764ca4fa4c6bf2610f21b8444f

commit eccefd9704a1e4764ca4fa4c6bf2610f21b8444f
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Thu Aug 25 10:06:47 2016 +0100

    Fix SetThreadName with current gdb
    
    Wrap SetThreadName()'s call to RaiseException() in __try/__except/__endtry,
    so that if the attached debugger doesn't know about MS_VC_EXCEPTION (e.g.
    current gdb and probably strace as well) and continues exception processing,
    we ignore it, rather than dying due an unhandled exception.
    
    Also remove an unnecessary cast in the RaiseException() invocation.
    
    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>

Diff:
---
 winsup/cygwin/miscfuncs.cc | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc
index 5a63b26..dc56cfd 100644
--- a/winsup/cygwin/miscfuncs.cc
+++ b/winsup/cygwin/miscfuncs.cc
@@ -1134,5 +1134,10 @@ SetThreadName(DWORD dwThreadID, const char* threadName)
 #endif
     };
 
-  RaiseException (MS_VC_EXCEPTION, 0, sizeof (info)/sizeof (ULONG_PTR), (ULONG_PTR *) &info);
+  __try {
+    RaiseException (MS_VC_EXCEPTION, 0, sizeof (info)/sizeof (ULONG_PTR), info);
+  }
+  __except (NO_ERROR) {
+  }
+  __endtry
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]