* 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.
This commit is contained in:
Christopher Faylor
2005-07-17 00:51:03 +00:00
parent cd929277d6
commit e8454a3400
10 changed files with 195 additions and 136 deletions

View File

@@ -29,7 +29,6 @@ details. */
#include "cygtls.h"
#include "child_info.h"
void *hook_cygwin (const char *, const void *);
child_info *get_cygwin_startup_info ();
static winpids pids;
@@ -295,7 +294,7 @@ cygwin_internal (cygwin_getinfo_types t, ...)
{
const char *name = va_arg (arg, const char *);
const void *hookfn = va_arg (arg, const void *);
return (unsigned long) hook_cygwin (name, hookfn);
return (unsigned long) hook_or_detect_cygwin (name, hookfn);
}
case CW_ARGV:
{