mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-28 20:43:45 +08:00
* main.c (main): Check for NULL from getenv on CYGWIN32.
* gdbtk.c (_initialize_gdbtk): Get rid of the console. Patch from Chris Faylor (cgf@cygnus.com). * configure.in: Link cygwin32 with subsystem console. * configure: Regenerated
This commit is contained in:
parent
5dccb8b0f4
commit
4779296003
@ -1,3 +1,12 @@
|
||||
Thu May 28 17:19:14 1998 Keith Seitz <keiths@cygnus.com>
|
||||
|
||||
* main.c (main): Check for NULL from getenv on CYGWIN32.
|
||||
|
||||
Thu May 28 09:41:44 1998 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* monitor.c (monitor_vsprintf): Handle %%. Patch courtesy of
|
||||
Felix Lee (flee@cygnus.com)
|
||||
|
||||
Thu May 28 00:27:35 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
|
||||
|
||||
* mips-tdep.c (mips_push_dummy_frame): Fix calculation of
|
||||
|
@ -1,3 +1,12 @@
|
||||
Thu May 28 17:19:14 1998 Keith Seitz <keiths@cygnus.com>
|
||||
|
||||
* gdbtk.c (_initialize_gdbtk): Get rid of the console. Patch from
|
||||
Chris Faylor (cgf@cygnus.com).
|
||||
|
||||
* configure.in: Link cygwin32 with subsystem console.
|
||||
|
||||
* configure: Regenerated
|
||||
|
||||
Sun May 24 14:00:24 1998 Keith Seitz <keiths@cygnus.com>
|
||||
|
||||
* ser-unix.c (wait_for): Do not reset timeout_remaining for cygwin32 so that
|
||||
|
2
gdb/configure
vendored
2
gdb/configure
vendored
@ -5143,7 +5143,7 @@ fi
|
||||
|
||||
if test x$gdb_cv_os_cygwin32 = xyes; then
|
||||
WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32 -luser32"
|
||||
WIN32LDAPP="-Wl,--subsystem,windows"
|
||||
WIN32LDAPP="-Wl,--subsystem,console"
|
||||
CONFIG_OBS="${CONFIG_OBS} gdbres.o"
|
||||
fi
|
||||
fi
|
||||
|
@ -427,7 +427,7 @@ if test "${enable_gdbtk}" = "yes"; then
|
||||
|
||||
if test x$gdb_cv_os_cygwin32 = xyes; then
|
||||
WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32 -luser32"
|
||||
WIN32LDAPP="-Wl,--subsystem,windows"
|
||||
WIN32LDAPP="-Wl,--subsystem,console"
|
||||
CONFIG_OBS="${CONFIG_OBS} gdbres.o"
|
||||
fi
|
||||
fi
|
||||
|
@ -3467,6 +3467,9 @@ _initialize_gdbtk ()
|
||||
/* Tell the rest of the world that Gdbtk is now set up. */
|
||||
|
||||
init_ui_hook = gdbtk_init;
|
||||
#ifdef __CYGWIN32__
|
||||
(void) FreeConsole ();
|
||||
#endif
|
||||
}
|
||||
#ifdef __CYGWIN32__
|
||||
else
|
||||
|
159
gdb/main.c
159
gdb/main.c
@ -42,8 +42,8 @@ static int top_level_val;
|
||||
ugly if it had to use catch_errors each time. */
|
||||
|
||||
#define SET_TOP_LEVEL() \
|
||||
(((top_level_val = setjmp (error_return)) \
|
||||
? (PTR) 0 : (PTR) memcpy (quit_return, error_return, sizeof (jmp_buf))) \
|
||||
(((top_level_val = SIGSETJMP (error_return)) \
|
||||
? (PTR) 0 : (PTR) memcpy (quit_return, error_return, sizeof (SIGJMP_BUF))) \
|
||||
, top_level_val)
|
||||
|
||||
/* If nonzero, display time usage both at startup and for each command. */
|
||||
@ -54,7 +54,12 @@ int display_time;
|
||||
|
||||
int display_space;
|
||||
|
||||
extern void gdb_init PARAMS ((void));
|
||||
static void print_gdb_help PARAMS ((GDB_FILE *));
|
||||
extern void gdb_init PARAMS ((char *));
|
||||
#ifdef __CYGWIN32__
|
||||
#include <windows.h> /* for MAX_PATH */
|
||||
extern void cygwin32_conv_to_posix_path (const char *, char *);
|
||||
#endif
|
||||
|
||||
int
|
||||
main (argc, argv)
|
||||
@ -333,7 +338,7 @@ main (argc, argv)
|
||||
quiet = 1;
|
||||
}
|
||||
|
||||
gdb_init ();
|
||||
gdb_init (argv[0]);
|
||||
|
||||
/* Do these (and anything which might call wrap_here or *_filtered)
|
||||
after initialize_all_files. */
|
||||
@ -347,52 +352,8 @@ main (argc, argv)
|
||||
|
||||
if (print_help)
|
||||
{
|
||||
/* --version is intentionally not documented here, because we
|
||||
are printing the version here, and the help is long enough
|
||||
already. */
|
||||
|
||||
print_gdb_version (gdb_stdout);
|
||||
/* Make sure the output gets printed. */
|
||||
wrap_here ("");
|
||||
printf_filtered ("\n");
|
||||
|
||||
/* But don't use *_filtered here. We don't want to prompt for continue
|
||||
no matter how small the screen or how much we're going to print. */
|
||||
fputs_unfiltered ("\
|
||||
This is the GNU debugger. Usage:\n\
|
||||
gdb [options] [executable-file [core-file or process-id]]\n\
|
||||
Options:\n\
|
||||
--help Print this message.\n\
|
||||
--quiet Do not print version number on startup.\n\
|
||||
--fullname Output information used by emacs-GDB interface.\n\
|
||||
--epoch Output information used by epoch emacs-GDB interface.\n\
|
||||
", gdb_stdout);
|
||||
fputs_unfiltered ("\
|
||||
--batch Exit after processing options.\n\
|
||||
--nx Do not read .gdbinit file.\n\
|
||||
--tty=TTY Use TTY for input/output by the program being debugged.\n\
|
||||
--cd=DIR Change current directory to DIR.\n\
|
||||
--directory=DIR Search for source files in DIR.\n\
|
||||
", gdb_stdout);
|
||||
fputs_unfiltered ("\
|
||||
--command=FILE Execute GDB commands from FILE.\n\
|
||||
--symbols=SYMFILE Read symbols from SYMFILE.\n\
|
||||
--exec=EXECFILE Use EXECFILE as the executable.\n\
|
||||
--se=FILE Use FILE as symbol file and executable file.\n\
|
||||
", gdb_stdout);
|
||||
fputs_unfiltered ("\
|
||||
--core=COREFILE Analyze the core dump COREFILE.\n\
|
||||
-b BAUDRATE Set serial port baud rate used for remote debugging.\n\
|
||||
--mapped Use mapped symbol files if supported on this system.\n\
|
||||
--readnow Fully read symbol files on first access.\n\
|
||||
--nw Do not use a window interface.\n\
|
||||
", gdb_stdout);
|
||||
#ifdef ADDITIONAL_OPTION_HELP
|
||||
fputs_unfiltered (ADDITIONAL_OPTION_HELP, gdb_stdout);
|
||||
#endif
|
||||
fputs_unfiltered ("\n\
|
||||
For more information, type \"help\" from within GDB, or consult the\n\
|
||||
GDB manual (available as on-line info or a printed manual).\n", gdb_stdout);
|
||||
print_gdb_help (gdb_stdout);
|
||||
fputs_unfiltered ("\n", gdb_stdout);
|
||||
exit (0);
|
||||
}
|
||||
|
||||
@ -400,7 +361,6 @@ GDB manual (available as on-line info or a printed manual).\n", gdb_stdout);
|
||||
{
|
||||
/* Print all the junk at the top, with trailing "..." if we are about
|
||||
to read a symbol file (possibly slowly). */
|
||||
print_gnu_advertisement ();
|
||||
print_gdb_version (gdb_stdout);
|
||||
if (symarg)
|
||||
printf_filtered ("..");
|
||||
@ -418,12 +378,26 @@ GDB manual (available as on-line info or a printed manual).\n", gdb_stdout);
|
||||
*before* all the command line arguments are processed; it sets
|
||||
global parameters, which are independent of what file you are
|
||||
debugging or what directory you are in. */
|
||||
homedir = getenv ("HOME");
|
||||
#ifdef __CYGWIN32__
|
||||
{
|
||||
char * tmp = getenv ("HOME");
|
||||
|
||||
if (tmp != NULL)
|
||||
{
|
||||
homedir = (char *) alloca (MAX_PATH+1);
|
||||
cygwin32_conv_to_posix_path (tmp, homedir);
|
||||
} else {
|
||||
homedir = NULL;
|
||||
}
|
||||
}
|
||||
#else
|
||||
homedir = getenv ("HOME");
|
||||
#endif
|
||||
if (homedir)
|
||||
{
|
||||
homeinit = (char *) alloca (strlen (getenv ("HOME")) +
|
||||
homeinit = (char *) alloca (strlen (homedir) +
|
||||
strlen (gdbinit) + 10);
|
||||
strcpy (homeinit, getenv ("HOME"));
|
||||
strcpy (homeinit, homedir);
|
||||
strcat (homeinit, "/");
|
||||
strcat (homeinit, gdbinit);
|
||||
|
||||
@ -583,7 +557,7 @@ GDB manual (available as on-line info or a printed manual).\n", gdb_stdout);
|
||||
/* The default command loop.
|
||||
The WIN32 Gui calls this main to set up gdb's state, and
|
||||
has its own command loop. */
|
||||
#ifndef _WIN32
|
||||
#if !defined _WIN32 || defined __GNUC__
|
||||
while (1)
|
||||
{
|
||||
if (!SET_TOP_LEVEL ())
|
||||
@ -604,6 +578,57 @@ GDB manual (available as on-line info or a printed manual).\n", gdb_stdout);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/* Don't use *_filtered for printing help. We don't want to prompt
|
||||
for continue no matter how small the screen or how much we're going
|
||||
to print. */
|
||||
|
||||
static void
|
||||
print_gdb_help (stream)
|
||||
GDB_FILE *stream;
|
||||
{
|
||||
fputs_unfiltered ("\
|
||||
This is the GNU debugger. Usage:\n\n\
|
||||
gdb [options] [executable-file [core-file or process-id]]\n\n\
|
||||
Options:\n\n\
|
||||
", stream);
|
||||
fputs_unfiltered ("\
|
||||
-b BAUDRATE Set serial port baud rate used for remote debugging.\n\
|
||||
--batch Exit after processing options.\n\
|
||||
--cd=DIR Change current directory to DIR.\n\
|
||||
--command=FILE Execute GDB commands from FILE.\n\
|
||||
--core=COREFILE Analyze the core dump COREFILE.\n\
|
||||
", stream);
|
||||
fputs_unfiltered ("\
|
||||
--directory=DIR Search for source files in DIR.\n\
|
||||
--epoch Output information used by epoch emacs-GDB interface.\n\
|
||||
--exec=EXECFILE Use EXECFILE as the executable.\n\
|
||||
--fullname Output information used by emacs-GDB interface.\n\
|
||||
--help Print this message.\n\
|
||||
", stream);
|
||||
fputs_unfiltered ("\
|
||||
--mapped Use mapped symbol files if supported on this system.\n\
|
||||
--nw Do not use a window interface.\n\
|
||||
--nx Do not read .gdbinit file.\n\
|
||||
--quiet Do not print version number on startup.\n\
|
||||
--readnow Fully read symbol files on first access.\n\
|
||||
", stream);
|
||||
fputs_unfiltered ("\
|
||||
--se=FILE Use FILE as symbol file and executable file.\n\
|
||||
--symbols=SYMFILE Read symbols from SYMFILE.\n\
|
||||
--tty=TTY Use TTY for input/output by the program being debugged.\n\
|
||||
--version Print version information and then exit.\n\
|
||||
", stream);
|
||||
#ifdef ADDITIONAL_OPTION_HELP
|
||||
fputs_unfiltered (ADDITIONAL_OPTION_HELP, stream);
|
||||
#endif
|
||||
fputs_unfiltered ("\n\
|
||||
For more information, type \"help\" from within GDB, or consult the\n\
|
||||
GDB manual (available as on-line info or a printed manual).\n\
|
||||
Report bugs to \"bug-gdb@prep.ai.mit.edu\".\
|
||||
", stream);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
init_proc ()
|
||||
@ -616,21 +641,21 @@ proc_remove_foreign (pid)
|
||||
{
|
||||
}
|
||||
|
||||
/* All I/O sent to the *_filtered and *_unfiltered functions eventually ends up
|
||||
here. The fputs_unfiltered_hook is primarily used by GUIs to collect all
|
||||
output and send it to the GUI, instead of the controlling terminal. Only
|
||||
output to gdb_stdout and gdb_stderr are sent to the hook. Everything else
|
||||
is sent on to fputs to allow file I/O to be handled appropriately. */
|
||||
|
||||
void
|
||||
fputs_unfiltered (linebuffer, stream)
|
||||
const char *linebuffer;
|
||||
FILE *stream;
|
||||
{
|
||||
if (fputs_unfiltered_hook)
|
||||
{
|
||||
/* FIXME: I think we should only be doing this for stdout or stderr.
|
||||
Either that or we should be passing stream to the hook so it can
|
||||
deal with it. If that is cleaned up, this function can go back
|
||||
into utils.c and the fputs_unfiltered_hook can replace the current
|
||||
ability to avoid this function by not linking with main.c. */
|
||||
fputs_unfiltered_hook (linebuffer, stream);
|
||||
return;
|
||||
}
|
||||
|
||||
fputs (linebuffer, stream);
|
||||
if (fputs_unfiltered_hook
|
||||
&& (stream == gdb_stdout
|
||||
|| stream == gdb_stderr))
|
||||
fputs_unfiltered_hook (linebuffer, stream);
|
||||
else
|
||||
fputs (linebuffer, stream);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user