summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/exceptions.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-07-17 00:51:03 +0000
committerChristopher Faylor <me@cgf.cx>2005-07-17 00:51:03 +0000
commite8454a340033a287a9245e049a6f23eb68ec7f95 (patch)
treee235728e012c817a8bc813232961e972d49f4ac1 /winsup/cygwin/exceptions.cc
parentcd929277d69996a60f29d17bb4d612063926a5f7 (diff)
downloadcygnal-e8454a340033a287a9245e049a6f23eb68ec7f95.tar.gz
cygnal-e8454a340033a287a9245e049a6f23eb68ec7f95.tar.bz2
cygnal-e8454a340033a287a9245e049a6f23eb68ec7f95.zip
* child_info.h (child_info::sync): Pass pid and HANDLE rather than using pinfo.
(child_info::child_info): Accept an argument controlling whether to create proc_subproc. (child_info_spawn::child_info_spawn): Ditto. * sigproc.cc (child_info::child_info): Ditto. (child_info_spawn::child_info_spawn): Ditto. (child_info::sync): Use passed in pid and HANDLE. * fork.cc (fork_parent): Reflect additional arguments required for child_info::sync. * hookapi.cc (hook_or_detect_cygwin): Rename. Change so that NULL 'fn' argument just returns "true", indicating that program uses cygwin1.dll. * spawn.cc (av::win16_exe): New element. * spawn.cc (av::iscygwin): New element. (av::fixup): New function. (spawn_guts): Protect against SEGV. Use fixup function to detect when it is safe to wait for a spawned (as opposed to an execed) program. Reflect changes in child_info::sync arguments. * external.cc (cygwin_internal): Reflect function renaming to hook_or_detect_cygwin. * cygheap.cc (cygheap_fixup_in_child): Close handle after debug fixup has been done to prevent false positives in handle collision. * exceptions.cc (try_to_debug): Notify debugger if already being debugged.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r--winsup/cygwin/exceptions.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 4f9a55e3d..1d3d8def7 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -320,8 +320,13 @@ extern "C" int
try_to_debug (bool waitloop)
{
debug_printf ("debugger_command '%s'", debugger_command);
- if (*debugger_command == '\0' || being_debugged ())
+ if (*debugger_command == '\0')
return 0;
+ if (being_debugged ())
+ {
+ DebugBreak ();
+ return 0;
+ }
__small_sprintf (strchr (debugger_command, '\0'), " %u", GetCurrentProcessId ());