From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4885 invoked by alias); 9 Jan 2013 10:53:20 -0000 Received: (qmail 4874 invoked by uid 22791); 9 Jan 2013 10:53:19 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,RCVD_IN_HOSTKARMA_NO,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 09 Jan 2013 10:53:11 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 4E4901C7BB5 for ; Wed, 9 Jan 2013 05:53:11 -0500 (EST) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id WL7H+7F7znjz for ; Wed, 9 Jan 2013 05:53:11 -0500 (EST) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id D8EB31C7853 for ; Wed, 9 Jan 2013 05:53:10 -0500 (EST) Received: by joel.gnat.com (Postfix, from userid 1000) id A3E08C1621; Wed, 9 Jan 2013 14:53:03 +0400 (RET) From: Joel Brobecker To: gdb-patches@sourceware.org Subject: Add Windows x64 SEH unwinder (take 2) Date: Wed, 09 Jan 2013 10:53:00 -0000 Message-Id: <1357728781-15073-1-git-send-email-brobecker@adacore.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2013-01/txt/msg00154.txt.bz2 Hello, This patch series adds an unwinder using the native Windows x64 SEH data. This dramatically improves the behavior as soon as system calls are involved. For instance, after switching to a different thread, we now get... (gdb) bt #0 0x0000000077a46eba in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll #1 0x00000000778fb380 in WaitForSingleObjectEx () from C:\Windows\system32\kernel32.dll #2 0x000000000040a7e9 in system__task_primitives__operations__cond_wait () #3 0x0000000000407c3b in system__tasking__rendezvous__accept_trivial () #4 0x0000000000401f3c in task_switch.callee (<_task>=0x394410) at task_switch.adb:29 #5 0x0000000000406637 in system__tasking__stages__task_wrapper () [...] ... instead of: #0 0x0000000077a46eba in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll #1 0x00000000778fb380 in WaitForSingleObjectEx () from C:\Windows\system32\kernel32.dll #2 0x000007fffffdc000 in ?? () #3 0x0000000077a266e4 in ntdll!LdrInitializeThunk () from C:\Windows\system32\ntdll.dll #4 0x0000000000000000 in ?? ()