- {
- /* Otherwise, we directly exec the target program with
- execvp. */
- int i;
- char *errstring;
-
- 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);
-
- 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");
-#if 0
- /* This extra info seems to be useless. */
- fprintf_unfiltered (gdb_stderr, "Got error %s.\n", errstring);
-#endif
- gdb_flush (gdb_stderr);
- _exit (0177);
- }
+ execvp (argv[0], &argv[0]);
+
+ /* If we get here, it's an error. */
+ save_errno = errno;
+ fprintf_unfiltered (gdb_stderr, "Cannot exec %s", argv[0]);
+ for (i = 1; argv[i] != NULL; i++)
+ fprintf_unfiltered (gdb_stderr, " %s", argv[i]);
+ fprintf_unfiltered (gdb_stderr, ".\n");
+ fprintf_unfiltered (gdb_stderr, "Error: %s\n",
+ safe_strerror (save_errno));
+ gdb_flush (gdb_stderr);
+ _exit (0177);