diff options
Diffstat (limited to 'winsup/cygwin/sigproc.h')
-rw-r--r-- | winsup/cygwin/sigproc.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h index d850ec923..581a5b5bd 100644 --- a/winsup/cygwin/sigproc.h +++ b/winsup/cygwin/sigproc.h @@ -49,12 +49,15 @@ private: sigthread *st; public: - void set (sigthread &t, int up = 1) + void set (sigthread &t, int up = 1, DWORD ebp = 0) { t.lock->acquire (); st = &t; - t.frame = (DWORD) (up ? __builtin_frame_address (1) : - __builtin_frame_address (0)); + if (ebp) + t.frame = ebp; + else + t.frame = (DWORD) (up ? __builtin_frame_address (1) : + __builtin_frame_address (0)); t.lock->release (); } |