* server.c (handle_v_run): If GDB didn't specify an argv, use the
whole argv from the last run, not just argv[0].
This commit is contained in:
parent
8a9629d090
commit
9b710a4294
2 changed files with 21 additions and 8 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-10-10 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* server.c (handle_v_run): If GDB didn't specify an argv, use the
|
||||
whole argv from the last run, not just argv[0].
|
||||
|
||||
2008-09-08 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* regcache.c (new_register_cache): Return NULL if the register
|
||||
|
|
|
@ -1096,23 +1096,31 @@ handle_v_run (char *own_buf, char *status, int *signal)
|
|||
|
||||
if (new_argv[0] == NULL)
|
||||
{
|
||||
/* GDB didn't specify a program to run. Try to use the argv
|
||||
from the last run: either from the last vRun with a non-empty
|
||||
argv, or from what the user specified if gdbserver was
|
||||
started as: `gdbserver :1234 PROG ARGS'. */
|
||||
|
||||
if (program_argv == NULL)
|
||||
{
|
||||
write_enn (own_buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
new_argv[0] = strdup (program_argv[0]);
|
||||
/* We can reuse the old args. We don't need this then. */
|
||||
free (new_argv);
|
||||
}
|
||||
|
||||
/* Free the old argv. */
|
||||
if (program_argv)
|
||||
else
|
||||
{
|
||||
for (pp = program_argv; *pp != NULL; pp++)
|
||||
free (*pp);
|
||||
free (program_argv);
|
||||
/* Free the old argv. */
|
||||
if (program_argv)
|
||||
{
|
||||
for (pp = program_argv; *pp != NULL; pp++)
|
||||
free (*pp);
|
||||
free (program_argv);
|
||||
}
|
||||
program_argv = new_argv;
|
||||
}
|
||||
program_argv = new_argv;
|
||||
|
||||
*signal = start_inferior (program_argv, status);
|
||||
if (*status == 'T')
|
||||
|
|
Loading…
Reference in a new issue