aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2006-02-01 21:37:21 +0000
committerDaniel Jacobowitz <drow@false.org>2006-02-01 21:37:21 +0000
commitdd24457ddffffda0617dda1beb6f21cf6bd87901 (patch)
tree97785d1ddd96d3a5b510b9cb7e0cd177692612f6 /gdb/gdbserver
parent6b31ad165d5b94d0a207bc2eab1855599a81033b (diff)
downloadgdb-dd24457ddffffda0617dda1beb6f21cf6bd87901.zip
gdb-dd24457ddffffda0617dda1beb6f21cf6bd87901.tar.gz
gdb-dd24457ddffffda0617dda1beb6f21cf6bd87901.tar.bz2
* Makefile.in (OBS): Add version.o.
(STAGESTUFF): Delete. (version.o): Add dependencies. (version.c): Replace rule. (clean): Remove version.c. * server.c (gdbserver_version): New. (gdbserver_usage): Use printf. (main): Handle --version and --help. * server.h (version, host_name): Add declarations.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r--gdb/gdbserver/ChangeLog12
-rw-r--r--gdb/gdbserver/Makefile.in17
-rw-r--r--gdb/gdbserver/server.c39
-rw-r--r--gdb/gdbserver/server.h4
4 files changed, 59 insertions, 13 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 0bcb814..9419040 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,15 @@
+2006-02-01 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * Makefile.in (OBS): Add version.o.
+ (STAGESTUFF): Delete.
+ (version.o): Add dependencies.
+ (version.c): Replace rule.
+ (clean): Remove version.c.
+ * server.c (gdbserver_version): New.
+ (gdbserver_usage): Use printf.
+ (main): Handle --version and --help.
+ * server.h (version, host_name): Add declarations.
+
2005-12-23 Eli Zaretskii <eliz@gnu.org>
* linux-arm-low.c:
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
index 48aa2e7..19ee78b 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
@@ -1,5 +1,6 @@
# Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-# 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+# Free Software Foundation, Inc.
# This file is part of GDB.
@@ -134,7 +135,7 @@ SOURCES = $(SFILES)
TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS}
OBS = inferiors.o regcache.o remote-utils.o server.o signals.o target.o \
- utils.o \
+ utils.o version.o \
mem-break.o \
$(DEPFILES)
GDBSERVER_LIBS = @GDBSERVER_LIBS@
@@ -200,6 +201,7 @@ tags: TAGS
clean:
rm -f *.o ${ADD_FILES} *~
+ rm -f version.c
rm -f gdbserver gdbreplay core make.log
rm -f reg-arm.c reg-i386.c reg-ia64.c reg-m32r.c reg-m68k.c reg-mips.c
rm -f reg-ppc.c reg-sh.c reg-x86-64.c reg-i386-linux.c
@@ -209,8 +211,6 @@ maintainer-clean realclean distclean: clean
rm -f nm.h tm.h xm.h config.status config.h stamp-h config.log
rm -f Makefile
-STAGESTUFF=${OBS} ${TSOBS} ${NTSOBS} ${ADD_FILES} init.c init.o version.c gdb
-
config.h: stamp-h ; @true
stamp-h: config.in config.status
CONFIG_FILES="" CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
@@ -223,8 +223,13 @@ config.status: configure configure.srv
force:
-version.c: Makefile
- echo 'char *version = "$(VERSION)";' >version.c
+version.c: Makefile $(srcdir)/../version.in
+ rm -f version.c-tmp version.c
+ echo '#include "server.h"' >> version.c-tmp
+ echo 'const char version[] = "'"`sed q ${srcdir}/../version.in`"'";' >> version.c-tmp
+ echo 'const char host_name[] = "$(host_alias)";' >> version.c-tmp
+ mv version.c-tmp version.c
+version.o: version.c $(server_h)
# GNU Make has an annoying habit of putting *all* the Makefile variables
# into the environment, unless you include this target as a circumvention.
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index fc90e74..9ea2b72 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -1,6 +1,6 @@
/* Main code for remote server for GDB.
Copyright (C) 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
- 2005
+ 2005, 2006
Free Software Foundation, Inc.
This file is part of GDB.
@@ -309,13 +309,23 @@ myresume (int step, int sig)
static int attached;
static void
+gdbserver_version (void)
+{
+ printf ("GNU gdbserver %s\n"
+ "Copyright (C) 2006 Free Software Foundation, Inc.\n"
+ "gdbserver is free software, covered by the GNU General Public License.\n"
+ "This gdbserver was configured as \"%s\"\n",
+ version, host_name);
+}
+
+static void
gdbserver_usage (void)
{
- error ("Usage:\tgdbserver COMM PROG [ARGS ...]\n"
- "\tgdbserver COMM --attach PID\n"
- "\n"
- "COMM may either be a tty device (for serial debugging), or \n"
- "HOST:PORT to listen for a TCP connection.\n");
+ printf ("Usage:\tgdbserver COMM PROG [ARGS ...]\n"
+ "\tgdbserver COMM --attach PID\n"
+ "\n"
+ "COMM may either be a tty device (for serial debugging), or \n"
+ "HOST:PORT to listen for a TCP connection.\n");
}
int
@@ -331,6 +341,18 @@ main (int argc, char *argv[])
int pid;
char *arg_end;
+ if (argc >= 2 && strcmp (argv[1], "--version") == 0)
+ {
+ gdbserver_version ();
+ exit (0);
+ }
+
+ if (argc >= 2 && strcmp (argv[1], "--help") == 0)
+ {
+ gdbserver_usage ();
+ exit (0);
+ }
+
if (setjmp (toplevel))
{
fprintf (stderr, "Exiting\n");
@@ -354,7 +376,10 @@ main (int argc, char *argv[])
}
if (argc < 3 || bad_attach)
- gdbserver_usage();
+ {
+ gdbserver_usage ();
+ exit (1);
+ }
initialize_low ();
diff --git a/gdb/gdbserver/server.h b/gdb/gdbserver/server.h
index d5e51a5..88d35d0 100644
--- a/gdb/gdbserver/server.h
+++ b/gdb/gdbserver/server.h
@@ -181,4 +181,8 @@ void init_registers (void);
? (registers_length () + 32) \
: 2000)
+/* Version information, from version.c. */
+extern const char version[];
+extern const char host_name[];
+
#endif /* SERVER_H */