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>
This commit is contained in:
Jon Turney 2016-09-11 13:37:54 +01:00
parent afcde26618
commit 93374181cb
1 changed files with 8 additions and 1 deletions

View File

@ -1129,11 +1129,18 @@ SetThreadName(DWORD dwThreadID, const char* threadName)
0x1000, /* type, must be 0x1000 */ 0x1000, /* type, must be 0x1000 */
(ULONG_PTR) threadName, /* pointer to threadname */ (ULONG_PTR) threadName, /* pointer to threadname */
dwThreadID, /* thread ID (+ flags on x86_64) */ dwThreadID, /* thread ID (+ flags on x86_64) */
#ifdef __X86__ #ifdef _X86_
0, /* flags, must be zero */ 0, /* flags, must be zero */
#endif #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 __try
{ {
RaiseException (MS_VC_EXCEPTION, 0, sizeof (info) / sizeof (ULONG_PTR), RaiseException (MS_VC_EXCEPTION, 0, sizeof (info) / sizeof (ULONG_PTR),