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 gdb 7.10 on x86


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

commit 93374181cba2a6e3e49adacaaa4a37c0e31e97a2
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Sun Sep 11 13:37:54 2016 +0100

    Fix SetThreadName with gdb 7.10 on x86
    
    Additionally to eccefd97, we need to ensure the exception handler is
    installed for the _ljfault used to implement _try/_except to get called.
    
    Also use the correct macro for x86 conditional compilation.
    
    Addresses https://cygwin.com/ml/cygwin/2016-09/msg00143.html
    
    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>

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

diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc
index fbd024f..f90d6ef 100644
--- a/winsup/cygwin/miscfuncs.cc
+++ b/winsup/cygwin/miscfuncs.cc
@@ -1129,11 +1129,18 @@ SetThreadName(DWORD dwThreadID, const char* threadName)
       0x1000,                 /* type, must be 0x1000 */
       (ULONG_PTR) threadName, /* pointer to threadname */
       dwThreadID,             /* thread ID (+ flags on x86_64) */
-#ifdef __X86__
+#ifdef _X86_
       0,                      /* flags, must be zero */
 #endif
     };
 
+#ifdef _X86_
+  /* On x86, for __try/__except to work, we must ensure our exception handler is
+     installed, which may not be the case if this is being called during early
+     initialization. */
+  exception protect;
+#endif
+
   __try
     {
       RaiseException (MS_VC_EXCEPTION, 0, sizeof (info) / sizeof (ULONG_PTR),


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