diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 02c3e792cc..cdca5139f0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2002-02-22 Pierre Muller + + * win32-nat.c (child_create_inferior): Fix create flags setting bug. + 2002-02-21 Christopher Faylor * win32-nat.c (register_loaded_dll): Just use raw name when we can't diff --git a/gdb/win32-nat.c b/gdb/win32-nat.c index 2ef28e0e53..ddbcd0b050 100644 --- a/gdb/win32-nat.c +++ b/gdb/win32-nat.c @@ -1468,14 +1468,6 @@ child_create_inferior (char *exec_file, char *allargs, char **env) memset (&si, 0, sizeof (si)); si.cb = sizeof (si); - flags = 0; - - if (new_group) - flags |= CREATE_NEW_PROCESS_GROUP; - - if (new_console) - flags |= CREATE_NEW_CONSOLE; - if (!useshell || !shell[0]) { flags = DEBUG_ONLY_THIS_PROCESS; @@ -1484,13 +1476,20 @@ child_create_inferior (char *exec_file, char *allargs, char **env) } else { - char *newallargs = alloca (sizeof (" -c 'exec '") + strlen (exec_file) + strlen (allargs) + 2); + char *newallargs = alloca (sizeof (" -c 'exec '") + strlen (exec_file) + + strlen (allargs) + 2); sprintf (newallargs, " -c 'exec %s %s'", exec_file, allargs); allargs = newallargs; toexec = shell; flags = DEBUG_PROCESS; } + if (new_group) + flags |= CREATE_NEW_PROCESS_GROUP; + + if (new_console) + flags |= CREATE_NEW_CONSOLE; + args = alloca (strlen (toexec) + strlen (allargs) + 2); strcpy (args, toexec); strcat (args, " "); diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 2ef28e0e53..ddbcd0b050 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -1468,14 +1468,6 @@ child_create_inferior (char *exec_file, char *allargs, char **env) memset (&si, 0, sizeof (si)); si.cb = sizeof (si); - flags = 0; - - if (new_group) - flags |= CREATE_NEW_PROCESS_GROUP; - - if (new_console) - flags |= CREATE_NEW_CONSOLE; - if (!useshell || !shell[0]) { flags = DEBUG_ONLY_THIS_PROCESS; @@ -1484,13 +1476,20 @@ child_create_inferior (char *exec_file, char *allargs, char **env) } else { - char *newallargs = alloca (sizeof (" -c 'exec '") + strlen (exec_file) + strlen (allargs) + 2); + char *newallargs = alloca (sizeof (" -c 'exec '") + strlen (exec_file) + + strlen (allargs) + 2); sprintf (newallargs, " -c 'exec %s %s'", exec_file, allargs); allargs = newallargs; toexec = shell; flags = DEBUG_PROCESS; } + if (new_group) + flags |= CREATE_NEW_PROCESS_GROUP; + + if (new_console) + flags |= CREATE_NEW_CONSOLE; + args = alloca (strlen (toexec) + strlen (allargs) + 2); strcpy (args, toexec); strcat (args, " ");