Fri Jan 29 16:44:01 1999 Edith Epstein <eepstein@sophia.cygnus.com>

* inferior.h: ran indent

	* fork-child.c: ran indent

	* infrun.c : ran indent
This commit is contained in:
Edith Epstein 1999-01-29 21:47:09 +00:00
parent fbd641cbd3
commit 34adffbd05
2 changed files with 184 additions and 164 deletions

View File

@ -1,3 +1,11 @@
Fri Jan 29 16:44:01 1999 Edith Epstein <eepstein@sophia.cygnus.com>
* inferior.h: ran indent
* fork-child.c: ran indent
* infrun.c : ran indent
Fri Jan 29 12:57:34 1999 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* infrun.c (_initialize_infrun): do not stop or print anything

View File

@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "defs.h"
#include "gdb_string.h"
#include "frame.h" /* required by inferior.h */
#include "frame.h" /* required by inferior.h */
#include "inferior.h"
#include "target.h"
#include "wait.h"
@ -50,46 +50,49 @@ extern char **environ;
*/
static void
breakup_args (
scratch,
argv)
char *scratch;
char **argv;
scratch,
argv)
char *scratch;
char **argv;
{
char *cp = scratch;
char *cp = scratch;
#if DEBUGGING
printf("breakup_args: input = %s\n", scratch);
printf ("breakup_args: input = %s\n", scratch);
#endif
for (;;) {
for (;;)
{
/* Scan past leading separators */
while (*cp == ' ' || *cp == '\t' || *cp == '\n') {
cp++;
}
/* Scan past leading separators */
while (*cp == ' ' || *cp == '\t' || *cp == '\n')
{
cp++;
}
/* Break if at end of string */
if (*cp == '\0') break;
/* Break if at end of string */
if (*cp == '\0')
break;
/* Take an arg */
*argv++ = cp;
/* Take an arg */
*argv++ = cp;
/* Scan for next arg separator */
cp = strchr (cp, ' ');
if (cp == NULL)
cp = strchr (cp, '\t');
if (cp == NULL)
cp = strchr (cp, '\n');
/* Scan for next arg separator */
cp = strchr (cp, ' ');
if (cp == NULL)
cp = strchr (cp, '\t');
if (cp == NULL)
cp = strchr (cp, '\n');
/* No separators => end of string => break */
if (cp == NULL)
break;
/* No separators => end of string => break */
if (cp == NULL)
break;
/* Replace the separator with a terminator */
*cp++ = '\0';
/* Replace the separator with a terminator */
*cp++ = '\0';
}
/* execv requires a null-terminated arg vector */
*argv = NULL;
/* execv requires a null-terminated arg vector */
*argv = NULL;
}
@ -128,23 +131,24 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun,
/* If no exec file handed to us, get it from the exec-file command -- with
a good, common error message if none is specified. */
if (exec_file == 0)
exec_file = get_exec_file(1);
exec_file = get_exec_file (1);
/* STARTUP_WITH_SHELL is defined in inferior.h.
* If 0, we'll just do a fork/exec, no shell, so don't
* bother figuring out what shell.
*/
if (STARTUP_WITH_SHELL) {
/* Figure out what shell to start up the user program under. */
if (shell_file == NULL)
shell_file = getenv ("SHELL");
if (shell_file == NULL)
shell_file = default_shell_file;
shell = 1;
}
if (STARTUP_WITH_SHELL)
{
/* Figure out what shell to start up the user program under. */
if (shell_file == NULL)
shell_file = getenv ("SHELL");
if (shell_file == NULL)
shell_file = default_shell_file;
shell = 1;
}
#if DEBUGGING
printf("shell is %s\n", shell_file);
printf ("shell is %s\n", shell_file);
#endif
/* Multiplying the length of exec_file by 4 is to account for the fact
@ -161,84 +165,87 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun,
shell_command[0] = '\0';
#endif
if (!shell) {
/* We're going to call execvp. Create argv */
/* Largest case: every other character is a separate arg */
if (!shell)
{
/* We're going to call execvp. Create argv */
/* Largest case: every other character is a separate arg */
#if DEBUGGING
printf("allocating argv, length = %d\n",
(
(strlen (allargs) + 1) / (unsigned) 2
+ 2
) * sizeof (*argv)
);
printf ("allocating argv, length = %d\n",
(
(strlen (allargs) + 1) / (unsigned) 2
+ 2
) * sizeof (*argv)
);
#endif
argv = (char **) xmalloc(((strlen (allargs) + 1) / (unsigned) 2 + 2) * sizeof (*argv));
argv[0] = exec_file;
breakup_args(allargs, &argv[1]);
argv = (char **) xmalloc (((strlen (allargs) + 1) / (unsigned) 2 + 2) * sizeof (*argv));
argv[0] = exec_file;
breakup_args (allargs, &argv[1]);
} else {
}
else
{
/* We're going to call a shell */
/* We're going to call a shell */
/* Now add exec_file, quoting as necessary. */
/* Now add exec_file, quoting as necessary. */
char *p;
int need_to_quote;
char *p;
int need_to_quote;
strcat (shell_command, "exec ");
strcat (shell_command, "exec ");
/* Quoting in this style is said to work with all shells. But csh
/* Quoting in this style is said to work with all shells. But csh
on IRIX 4.0.1 can't deal with it. So we only quote it if we need
to. */
p = exec_file;
while (1)
{
switch (*p)
{
case '\'':
case '"':
case '(':
case ')':
case '$':
case '&':
case ';':
case '<':
case '>':
case ' ':
case '\n':
case '\t':
need_to_quote = 1;
goto end_scan;
p = exec_file;
while (1)
{
switch (*p)
{
case '\'':
case '"':
case '(':
case ')':
case '$':
case '&':
case ';':
case '<':
case '>':
case ' ':
case '\n':
case '\t':
need_to_quote = 1;
goto end_scan;
case '\0':
need_to_quote = 0;
goto end_scan;
case '\0':
need_to_quote = 0;
goto end_scan;
default:
break;
}
++p;
}
end_scan:
if (need_to_quote)
{
strcat (shell_command, "'");
for (p = exec_file; *p != '\0'; ++p)
{
if (*p == '\'')
strcat (shell_command, "'\\''");
else
strncat (shell_command, p, 1);
}
strcat (shell_command, "'");
}
else
strcat (shell_command, exec_file);
default:
break;
}
++p;
}
end_scan:
if (need_to_quote)
{
strcat (shell_command, "'");
for (p = exec_file; *p != '\0'; ++p)
{
if (*p == '\'')
strcat (shell_command, "'\\''");
else
strncat (shell_command, p, 1);
}
strcat (shell_command, "'");
}
else
strcat (shell_command, exec_file);
strcat (shell_command, " ");
strcat (shell_command, allargs);
strcat (shell_command, " ");
strcat (shell_command, allargs);
}
}
/* exec is said to fail if the executable is open. */
close_exec_file ();
@ -286,7 +293,7 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun,
/* Run inferior in a separate process group. */
debug_setpgrp = gdb_setpgid ();
if (debug_setpgrp == -1)
perror("setpgrp failed in child");
perror ("setpgrp failed in child");
/* Ask the tty subsystem to switch to the one we specified earlier
(or to share the current terminal, if none was specified). */
@ -325,69 +332,74 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun,
* don't do .cshrc file. Doing .cshrc may cause fork/exec
* events which will confuse debugger start-up code.
*/
if (shell) {
if (shell)
{
#if 0
/* HP change is problematic. The -f option has different meanings
/* HP change is problematic. The -f option has different meanings
for different shells. It is particularly inappropriate for
bourne shells. */
execlp (shell_file, shell_file, "-f", "-c", shell_command, (char *)0);
execlp (shell_file, shell_file, "-f", "-c", shell_command, (char *) 0);
#else
execlp (shell_file, shell_file, "-c", shell_command, (char *)0);
execlp (shell_file, shell_file, "-c", shell_command, (char *) 0);
#endif
/* If we get here, it's an error */
fprintf_unfiltered (gdb_stderr, "Cannot exec %s: %s.\n", shell_file,
safe_strerror (errno));
gdb_flush (gdb_stderr);
_exit (0177);
} else {
/* Otherwise, we directly exec the target program with execvp. */
int i;
char * errstring;
/* If we get here, it's an error */
fprintf_unfiltered (gdb_stderr, "Cannot exec %s: %s.\n", shell_file,
safe_strerror (errno));
gdb_flush (gdb_stderr);
_exit (0177);
}
else
{
/* Otherwise, we directly exec the target program with execvp. */
int i;
char *errstring;
#if DEBUGGING
printf("about to exec target, exec_file = %s\n", exec_file);
i = 0;
while (argv[i] != NULL) {
printf("strlen(argv[%d]) is %d\n", i, strlen(argv[i]));
printf("argv[%d] is %s\n", i, argv[i]);
i++;
}
printf ("about to exec target, exec_file = %s\n", exec_file);
i = 0;
while (argv[i] != NULL)
{
printf ("strlen(argv[%d]) is %d\n", i, strlen (argv[i]));
printf ("argv[%d] is %s\n", i, argv[i]);
i++;
}
#endif
execvp (exec_file, argv);
execvp (exec_file, argv);
/* If we get here, it's an error */
errstring = safe_strerror (errno);
fprintf_unfiltered (gdb_stderr, "Cannot exec %s ", exec_file);
/* If we get here, it's an error */
errstring = safe_strerror (errno);
fprintf_unfiltered (gdb_stderr, "Cannot exec %s ", exec_file);
i = 1;
while (argv[i] != NULL) {
if (i != 1)
fprintf_unfiltered (gdb_stderr, " ");
fprintf_unfiltered (gdb_stderr, "%s", argv[i]);
i++;
}
fprintf_unfiltered (gdb_stderr, ".\n");
/* This extra info seems to be useless
i = 1;
while (argv[i] != NULL)
{
if (i != 1)
fprintf_unfiltered (gdb_stderr, " ");
fprintf_unfiltered (gdb_stderr, "%s", argv[i]);
i++;
}
fprintf_unfiltered (gdb_stderr, ".\n");
/* This extra info seems to be useless
fprintf_unfiltered (gdb_stderr, "Got error %s.\n", errstring);
*/
gdb_flush (gdb_stderr);
_exit (0177);
}
gdb_flush (gdb_stderr);
_exit (0177);
}
}
/* Restore our environment in case a vforked child clob'd it. */
environ = save_our_env;
init_thread_list();
init_thread_list ();
inferior_pid = pid; /* Needed for wait_for_inferior stuff below */
/* Now that we have a child process, make it our target, and
initialize anything target-vector-specific that needs initializing. */
(*init_trace_fun)(pid);
(*init_trace_fun) (pid);
/* We are now in the child process of interest, having exec'd the
correct program, and are poised at the first instruction of the
@ -414,14 +426,14 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun,
*/
void
clone_and_follow_inferior (child_pid, followed_child)
int child_pid;
int *followed_child;
int child_pid;
int *followed_child;
{
extern int auto_solib_add;
int debugger_pid;
int status;
char pid_spelling [100]; /* Arbitrary but sufficient length. */
int debugger_pid;
int status;
char pid_spelling[100]; /* Arbitrary but sufficient length. */
/* This semaphore is used to coordinate the two debuggers' handoff
of CHILD_PID. The original debugger will detach from CHILD_PID,
@ -432,9 +444,9 @@ clone_and_follow_inferior (child_pid, followed_child)
*/
#define SEM_TALK (1)
#define SEM_LISTEN (0)
int handoff_semaphore[2]; /* Original "talks" to [1], clone "listens" to [0] */
int talk_value = 99;
int listen_value;
int handoff_semaphore[2]; /* Original "talks" to [1], clone "listens" to [0] */
int talk_value = 99;
int listen_value;
/* Set debug_fork then attach to the child while it sleeps, to debug. */
static int debug_fork = 0;
@ -469,7 +481,7 @@ clone_and_follow_inferior (child_pid, followed_child)
to CHILD_PID. */
if (debugger_pid != 0)
{
char signal_spelling[100]; /* Arbitrary but sufficient length */
char signal_spelling[100];/* Arbitrary but sufficient length */
/* Detach from CHILD_PID. Deliver a "stop" signal when we do, though,
so that it remains stopped until the clone debugger can attach
@ -490,7 +502,7 @@ clone_and_follow_inferior (child_pid, followed_child)
else
{
if (debug_fork)
sleep (debug_fork);
sleep (debug_fork);
/* The child (i.e., the cloned debugger) must now attach to
CHILD_PID. inferior_pid is presently set to the parent process
@ -516,7 +528,7 @@ clone_and_follow_inferior (child_pid, followed_child)
new_tty ();
dont_repeat ();
sprintf(pid_spelling, "%d", child_pid);
sprintf (pid_spelling, "%d", child_pid);
target_require_attach (pid_spelling, 1);
/* Perform any necessary cleanup, after attachment. (This form
@ -592,11 +604,11 @@ startup_inferior (ntraps)
terminal_initted = 1;
}
pending_execs = pending_execs - 1;
pending_execs = pending_execs - 1;
if (0 == pending_execs)
break;
resume (0, TARGET_SIGNAL_0); /* Just make it go on */
resume (0, TARGET_SIGNAL_0); /* Just make it go on */
}
}
#endif /* STARTUP_INFERIOR */