This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Version string added to gdbserver
- From: Daniel Jacobowitz <drow at false dot org>
- To: Girish Shilamkar <girish at linsyssoft dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Wed, 1 Feb 2006 16:37:45 -0500
- Subject: Re: Version string added to gdbserver
- References: <1138705200.3213.12.camel@krypton>
On Tue, Jan 31, 2006 at 04:30:00PM +0530, Girish Shilamkar wrote:
> Hi,
> gdbserver Makefile consists of following line:
>
> # Perhaps should come from parent Makefile
> VERSION = gdbserver-4.12.3
>
> In order to know which gdbserver is being run, the following patch
> prints gdbserver version when gdbserver is started.
> Should the gdb version also be displayed, from which gdbserver was
> built (i.e gdb 6.4 etc), since gdbserver built from different gdb
> versions may be different even if gdbserver version is same?
It ought to just use the gdb version number; I've checked in this
alternate patch. Thanks for the report.
--
Daniel Jacobowitz
CodeSourcery
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.
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/Makefile.in,v
retrieving revision 1.32
diff -u -p -r1.32 Makefile.in
--- Makefile.in 23 Dec 2005 18:11:55 -0000 1.32
+++ Makefile.in 1 Feb 2006 21:36:00 -0000
@@ -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: cl
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.
Index: server.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/server.c,v
retrieving revision 1.30
diff -u -p -r1.30 server.c
--- server.c 23 Dec 2005 18:11:55 -0000 1.30
+++ server.c 1 Feb 2006 21:36:00 -0000
@@ -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 ();
Index: server.h
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/server.h,v
retrieving revision 1.21
diff -u -p -r1.21 server.h
--- server.h 23 Dec 2005 18:11:55 -0000 1.21
+++ server.h 1 Feb 2006 21:36:00 -0000
@@ -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 */