* Makefile.in (GDB_CFLAGS): Add -I$(srcdir)/common.

(init.c): signals/ -> common/.
	(signals.o): Update.
	* target.h (target_signal_to_string,target_signal_to_string)
	(target_signal_from_name,target_signal_to_host_p)
	(target_signal_from_host,target_signal_to_host): Move to ...
	* common/gdb_signals.h: ... here.  New file.
	* common/signals.c: Moved here from signals/signals.c.
	#include gdb_signals.h, remove #include of target.h in gdb case.
	(target_signal_from_command,default_target_signal_to_host)
	(default_target_signal_from_host): Move inside #ifndef GDBSERVER.

	* gdbserver/Makefile.in (INCLUDE_CFLAGS): Add -I$(srcdir)/../common.
	(server_h): Add gdb_signals.h.
	(signals.o): Update.
	* server.h (target_signal_from_host,target_signal_to_host_p)
	(target_signal_to_host,target_signal_to_name): Moved to gdb_signals.h.
This commit is contained in:
Doug Evans 2009-03-02 00:45:13 +00:00
parent 04e2c417f9
commit 2aecd87f56
8 changed files with 96 additions and 49 deletions

View File

@ -1,5 +1,17 @@
2009-03-01 Doug Evans <dje@google.com>
* Makefile.in (GDB_CFLAGS): Add -I$(srcdir)/common.
(init.c): signals/ -> common/.
(signals.o): Update.
* target.h (target_signal_to_string,target_signal_to_string)
(target_signal_from_name,target_signal_to_host_p)
(target_signal_from_host,target_signal_to_host): Move to ...
* common/gdb_signals.h: ... here. New file.
* common/signals.c: Moved here from signals/signals.c.
#include gdb_signals.h, remove #include of target.h in gdb case.
(target_signal_from_command,default_target_signal_to_host)
(default_target_signal_from_host): Move inside #ifndef GDBSERVER.
Include thread ID in target_wait debugging output.
* infrun.c (print_target_wait_results): New function.
(wait_for_inferior,fetch_inferior_event): Call it.

View File

@ -365,7 +365,8 @@ CONFIG_UNINSTALL = @CONFIG_UNINSTALL@
# your system doesn't have fcntl.h in /usr/include (which is where it
# should be according to Posix).
DEFS = @DEFS@
GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config -DLOCALEDIR="\"$(localedir)\"" $(DEFS)
GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/common -I$(srcdir)/config \
-DLOCALEDIR="\"$(localedir)\"" $(DEFS)
# MH_CFLAGS, if defined, has host-dependent CFLAGS from the config directory.
GLOBAL_CFLAGS = $(MH_CFLAGS)
@ -1033,7 +1034,7 @@ init.c: $(INIT_FILES)
-e '/^[a-z0-9A-Z_]*_[SU].[co]$$/d' \
-e '/[a-z0-9A-Z_]*-exp.tab.[co]$$/d' \
-e 's/\.[co]$$/.c/' \
-e 's,signals\.c,signals/signals\.c,' \
-e 's,signals\.c,common/signals\.c,' \
-e 's|^\([^ /][^ ]*\)|$(srcdir)/\1|g' | \
while read f; do \
sed -n -e 's/^_initialize_\([a-z_0-9A-Z]*\).*/\1/p' $$f 2>/dev/null; \
@ -1743,13 +1744,13 @@ mi-common.o: $(srcdir)/mi/mi-common.c
$(POSTCOMPILE)
#
# gdb/signals/ dependencies
# gdb/common/ dependencies
#
# Need to explicitly specify the compile rule as make will do nothing
# or try to compile the object file into the sub-directory.
signals.o: $(srcdir)/signals/signals.c
$(COMPILE) $(srcdir)/signals/signals.c
signals.o: $(srcdir)/common/signals.c
$(COMPILE) $(srcdir)/common/signals.c
$(POSTCOMPILE)
#

56
gdb/common/gdb_signals.h Normal file
View File

@ -0,0 +1,56 @@
/* Target signal translation functions for GDB.
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef COMMON_GDB_SIGNALS_H
#define COMMON_GDB_SIGNALS_H
#include "gdb/signals.h"
/* Predicate to target_signal_to_host(). Return non-zero if the enum
targ_signal SIGNO has an equivalent ``host'' representation. */
/* FIXME: cagney/1999-11-22: The name below was chosen in preference
to the shorter target_signal_p() because it is far less ambigious.
In this context ``target_signal'' refers to GDB's internal
representation of the target's set of signals while ``host signal''
refers to the target operating system's signal. Confused? */
extern int target_signal_to_host_p (enum target_signal signo);
/* Convert between host signal numbers and enum target_signal's.
target_signal_to_host() returns 0 and prints a warning() on GDB's
console if SIGNO has no equivalent host representation. */
/* FIXME: cagney/1999-11-22: Here ``host'' is used incorrectly, it is
refering to the target operating system's signal numbering.
Similarly, ``enum target_signal'' is named incorrectly, ``enum
gdb_signal'' would probably be better as it is refering to GDB's
internal representation of a target operating system's signal. */
extern enum target_signal target_signal_from_host (int);
extern int target_signal_to_host (enum target_signal);
/* Return the string for a signal. */
extern const char *target_signal_to_string (enum target_signal);
/* Return the name (SIGHUP, etc.) for a signal. */
extern const char *target_signal_to_name (enum target_signal);
/* Given a name (SIGHUP, etc.), return its signal. */
enum target_signal target_signal_from_name (const char *);
#endif /* COMMON_GDB_SIGNALS_H */

View File

@ -23,7 +23,6 @@
#include "server.h"
#else
#include "defs.h"
#include "target.h"
#include "gdb_string.h"
#endif
@ -31,6 +30,8 @@
#include <signal.h>
#endif
#include "gdb_signals.h"
struct gdbarch;
/* Always use __SIGRTMIN if it's available. SIGRTMIN is the lowest
@ -807,6 +808,8 @@ target_signal_to_host (enum target_signal oursig)
return targ_signo;
}
#ifndef GDBSERVER
/* In some circumstances we allow a command to specify a numeric
signal. The idea is to keep these circumstances limited so that
users (and scripts) develop portable habits. For comparison,
@ -824,7 +827,6 @@ target_signal_from_command (int num)
Use \"info signals\" for a list of symbolic signals.");
}
#ifndef GDBSERVER
extern initialize_file_ftype _initialize_signals; /* -Wmissing-prototype */
void
@ -833,7 +835,6 @@ _initialize_signals (void)
if (strcmp (signals[TARGET_SIGNAL_LAST].string, "TARGET_SIGNAL_MAGIC") != 0)
internal_error (__FILE__, __LINE__, "failed internal consistency check");
}
#endif
int
default_target_signal_to_host (struct gdbarch *gdbarch, enum target_signal ts)
@ -846,3 +847,5 @@ default_target_signal_from_host (struct gdbarch *gdbarch, int signo)
{
return target_signal_from_host (signo);
}
#endif /* ! GDBSERVER */

View File

@ -1,3 +1,11 @@
2009-03-01 Doug Evans <dje@google.com>
* gdbserver/Makefile.in (INCLUDE_CFLAGS): Add -I$(srcdir)/../common.
(server_h): Add gdb_signals.h.
(signals.o): Update.
* server.h (target_signal_from_host,target_signal_to_host_p)
(target_signal_to_host,target_signal_to_name): Moved to gdb_signals.h.
2009-02-14 Pierre Muller <muller@ics.u-strasbg.fr>
* remote-utils.c (getpkt): Also generate remote-debug

View File

@ -74,7 +74,8 @@ INCLUDE_DEP = $$(INCLUDE_DIR)
# -I. for config files.
# -I${srcdir} for our headers.
# -I$(srcdir)/../regformats for regdef.h.
INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../regformats -I$(INCLUDE_DIR)
INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../common \
-I$(srcdir)/../regformats -I$(INCLUDE_DIR)
# M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS
# from the config/ directory.
@ -263,7 +264,7 @@ regdat_sh = $(srcdir)/../regformats/regdat.sh
regdef_h = $(srcdir)/../regformats/regdef.h
regcache_h = $(srcdir)/regcache.h
server_h = $(srcdir)/server.h $(regcache_h) config.h $(srcdir)/target.h \
$(srcdir)/mem-break.h
$(srcdir)/mem-break.h $(srcdir)/../common/gdb_signals.h
hostio.o: hostio.c $(server_h)
hostio-errno.o: hostio-errno.c $(server_h)
@ -278,7 +279,7 @@ thread-db.o: thread-db.c $(server_h) $(gdb_proc_service_h)
utils.o: utils.c $(server_h)
gdbreplay.o: gdbreplay.c config.h
signals.o: ../signals/signals.c $(server_h)
signals.o: ../common/signals.c $(server_h)
$(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< -DGDBSERVER
memmem.o: ../gnulib/memmem.c

View File

@ -110,7 +110,7 @@ struct dll_info
#include "regcache.h"
#include "gdb/signals.h"
#include "gdb_signals.h"
#include "target.h"
#include "mem-break.h"
@ -265,12 +265,6 @@ void buffer_xml_printf (struct buffer *buffer, const char *format, ...)
#define buffer_grow_str0(BUFFER,STRING) \
buffer_grow (BUFFER, STRING, strlen (STRING) + 1)
/* Functions from ``signals.c''. */
enum target_signal target_signal_from_host (int hostsig);
int target_signal_to_host_p (enum target_signal oursig);
int target_signal_to_host (enum target_signal oursig);
const char *target_signal_to_name (enum target_signal);
/* Functions from utils.c */
void *xmalloc (size_t) ATTR_MALLOC;

View File

@ -55,6 +55,7 @@ struct regcache;
#include "dcache.h"
#include "memattr.h"
#include "vec.h"
#include "gdb_signals.h"
enum strata
{
@ -176,15 +177,6 @@ enum inferior_event_type
'step n' like commands. */
INF_EXEC_CONTINUE
};
/* Return the string for a signal. */
extern const char *target_signal_to_string (enum target_signal);
/* Return the name (SIGHUP, etc.) for a signal. */
extern const char *target_signal_to_name (enum target_signal);
/* Given a name (SIGHUP, etc.), return its signal. */
enum target_signal target_signal_from_name (const char *);
/* Target objects which can be transfered using target_read,
target_write, et cetera. */
@ -1290,28 +1282,7 @@ extern int remote_timeout;
/* This is for native targets which use a unix/POSIX-style waitstatus. */
extern void store_waitstatus (struct target_waitstatus *, int);
/* Predicate to target_signal_to_host(). Return non-zero if the enum
targ_signal SIGNO has an equivalent ``host'' representation. */
/* FIXME: cagney/1999-11-22: The name below was chosen in preference
to the shorter target_signal_p() because it is far less ambigious.
In this context ``target_signal'' refers to GDB's internal
representation of the target's set of signals while ``host signal''
refers to the target operating system's signal. Confused? */
extern int target_signal_to_host_p (enum target_signal signo);
/* Convert between host signal numbers and enum target_signal's.
target_signal_to_host() returns 0 and prints a warning() on GDB's
console if SIGNO has no equivalent host representation. */
/* FIXME: cagney/1999-11-22: Here ``host'' is used incorrectly, it is
refering to the target operating system's signal numbering.
Similarly, ``enum target_signal'' is named incorrectly, ``enum
gdb_signal'' would probably be better as it is refering to GDB's
internal representation of a target operating system's signal. */
extern enum target_signal target_signal_from_host (int);
extern int target_signal_to_host (enum target_signal);
/* These are in common/signals.c, but they're only used by gdb. */
extern enum target_signal default_target_signal_from_host (struct gdbarch *,
int);
extern int default_target_signal_to_host (struct gdbarch *,
@ -1319,6 +1290,7 @@ extern int default_target_signal_to_host (struct gdbarch *,
/* Convert from a number used in a GDB command to an enum target_signal. */
extern enum target_signal target_signal_from_command (int);
/* End of files in common/signals.c. */
/* Set the show memory breakpoints mode to show, and installs a cleanup
to restore it back to the current value. */