diff options
Diffstat (limited to 'winsup/cygwin/init.cc')
-rw-r--r-- | winsup/cygwin/init.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc index 69e66a029..c6f0e3de9 100644 --- a/winsup/cygwin/init.cc +++ b/winsup/cygwin/init.cc @@ -57,9 +57,12 @@ munge_threadfunc () { char *threadfunc = NULL; - NtQueryInformationThread (NtCurrentThread (), - ThreadQuerySetWin32StartAddress, - &threadfunc, sizeof threadfunc, NULL); + if (wincap.wow64_has_secondary_stack ()) + threadfunc = ebp[threadfunc_ix[0]]; + else + NtQueryInformationThread (NtCurrentThread (), + ThreadQuerySetWin32StartAddress, + &threadfunc, sizeof threadfunc, NULL); if (!search_for || threadfunc == search_for) { search_for = NULL; |