* go32-nat.c: (go32_wait): If child_cwd[] is empty, initialize

it to GDB's current directory.
	(go32_create_inferior, init_go32_ops): Initialize child_cwd[] to
	an empty string, to signal an uninitialized value.
	From Robert Hoehne <robert.hoehne@gmx.net>.
This commit is contained in:
Eli Zaretskii 2000-08-06 07:19:38 +00:00
parent f0dc282cbe
commit 3a45aed885
2 changed files with 23 additions and 2 deletions

View file

@ -1,3 +1,11 @@
2000-08-05 Eli Zaretskii <eliz@is.elta.co.il>
* go32-nat.c: (go32_wait): If child_cwd[] is empty, initialize
it to GDB's current directory.
(go32_create_inferior, init_go32_ops): Initialize child_cwd[] to
an empty string, to signal an uninitialized value.
From Robert Hoehne <robert.hoehne@gmx.net>.
2000-08-04 Kevin Buettner <kevinb@redhat.com> 2000-08-04 Kevin Buettner <kevinb@redhat.com>
* symtab.h (fixup_psymbol_section): Declare. * symtab.h (fixup_psymbol_section): Declare.

View file

@ -389,6 +389,13 @@ go32_wait (int pid ATTRIBUTE_UNUSED, struct target_waitstatus *status)
point of changing back to where GDB thinks is its cwd, when we point of changing back to where GDB thinks is its cwd, when we
return control to the debugger, but restore child's cwd before we return control to the debugger, but restore child's cwd before we
run it. */ run it. */
/* Initialize child_cwd, before the first call to run_child and not
in the initialization, so the child get also the changed directory
set with the gdb-command "cd ..." */
if (!*child_cwd)
/* Initialize child's cwd with the current one. */
getcwd (child_cwd, sizeof (child_cwd));
chdir (child_cwd); chdir (child_cwd);
#if __DJGPP_MINOR__ < 3 #if __DJGPP_MINOR__ < 3
@ -603,6 +610,11 @@ go32_create_inferior (char *exec_file, char *args, char **env)
} }
resume_signal = -1; resume_signal = -1;
resume_is_step = 0; resume_is_step = 0;
/* Initialize child's cwd as empty to be initialized when starting
the child. */
*child_cwd = 0;
/* Init command line storage. */ /* Init command line storage. */
if (redir_debug_init (&child_cmd) == -1) if (redir_debug_init (&child_cmd) == -1)
internal_error ("Cannot allocate redirection storage: not enough memory.\n"); internal_error ("Cannot allocate redirection storage: not enough memory.\n");
@ -1224,8 +1236,9 @@ init_go32_ops (void)
go32_ops.to_has_execution = 1; go32_ops.to_has_execution = 1;
go32_ops.to_magic = OPS_MAGIC; go32_ops.to_magic = OPS_MAGIC;
/* Initialize child's cwd with the current one. */ /* Initialize child's cwd as empty to be initialized when starting
getcwd (child_cwd, sizeof (child_cwd)); the child. */
*child_cwd = 0;
/* Initialize child's command line storage. */ /* Initialize child's command line storage. */
if (redir_debug_init (&child_cmd) == -1) if (redir_debug_init (&child_cmd) == -1)