2002-03-27 Daniel Jacobowitz <drow@mvista.com>
* gdbserver/server.c (main): Call target_signal_to_host_p and target_signal_to_host on signals received from the remote. * gdbserver/remote-utils.c (prepare_resume_reply): Call target_signal_from_host on signals sent to the remote. * gdbserver/server.h: Add prototypes. Include "gdb/signals.h". * gdbserver/Makefile.in: Add signals.o. Add -I${INCLUDE_DIR}.
This commit is contained in:
parent
3130066b6c
commit
0e98d0a751
5 changed files with 34 additions and 11 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2002-03-27 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
|
* gdbserver/server.c (main): Call target_signal_to_host_p
|
||||||
|
and target_signal_to_host on signals received from the remote.
|
||||||
|
* gdbserver/remote-utils.c (prepare_resume_reply): Call
|
||||||
|
target_signal_from_host on signals sent to the remote.
|
||||||
|
* gdbserver/server.h: Add prototypes. Include "gdb/signals.h".
|
||||||
|
* gdbserver/Makefile.in: Add signals.o. Add -I${INCLUDE_DIR}.
|
||||||
|
|
||||||
2002-03-27 Daniel Jacobowitz <drow@mvista.com>
|
2002-03-27 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
* signals/signals.c: Include "server.h" in gdbserver build.
|
* signals/signals.c: Include "server.h" in gdbserver build.
|
||||||
|
|
|
@ -83,7 +83,7 @@ READLINE_DEP = $$(READLINE_DIR)
|
||||||
# -I. for config files.
|
# -I. for config files.
|
||||||
# -I${srcdir} for our headers.
|
# -I${srcdir} for our headers.
|
||||||
# -I$(srcdir)/../regformats for regdef.h.
|
# -I$(srcdir)/../regformats for regdef.h.
|
||||||
INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../regformats
|
INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../regformats -I$(INCLUDE_DIR)
|
||||||
|
|
||||||
# M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS
|
# M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS
|
||||||
# from the config/ directory.
|
# from the config/ directory.
|
||||||
|
@ -120,7 +120,7 @@ DEPFILES = @GDBSERVER_DEPFILES@
|
||||||
SOURCES = $(SFILES)
|
SOURCES = $(SFILES)
|
||||||
TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS}
|
TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS}
|
||||||
|
|
||||||
OBS = utils.o $(DEPFILES) server.o remote-utils.o regcache.o
|
OBS = utils.o $(DEPFILES) server.o remote-utils.o regcache.o signals.o
|
||||||
|
|
||||||
# Prevent Sun make from putting in the machine type. Setting
|
# Prevent Sun make from putting in the machine type. Setting
|
||||||
# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1.
|
# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1.
|
||||||
|
@ -232,6 +232,9 @@ remote-utils.o: remote-utils.c terminal.h $(server_h)
|
||||||
utils.o: utils.c $(server_h)
|
utils.o: utils.c $(server_h)
|
||||||
regcache.o: regcache.c $(server_h) $(regdef_h)
|
regcache.o: regcache.c $(server_h) $(regdef_h)
|
||||||
|
|
||||||
|
signals.o: ../signals/signals.c $(server_h)
|
||||||
|
$(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< -DGDBSERVER
|
||||||
|
|
||||||
i387-fp.o: i387-fp.c $(server_h)
|
i387-fp.o: i387-fp.c $(server_h)
|
||||||
|
|
||||||
linux_low_h = $(srcdir)/linux-low.h
|
linux_low_h = $(srcdir)/linux-low.h
|
||||||
|
|
|
@ -463,17 +463,15 @@ outreg (int regno, char *buf)
|
||||||
void
|
void
|
||||||
prepare_resume_reply (char *buf, char status, unsigned char signo)
|
prepare_resume_reply (char *buf, char status, unsigned char signo)
|
||||||
{
|
{
|
||||||
int nib;
|
int nib, sig;
|
||||||
|
|
||||||
*buf++ = status;
|
*buf++ = status;
|
||||||
|
|
||||||
/* FIXME! Should be converting this signal number (numbered
|
sig = (int)target_signal_from_host (signo);
|
||||||
according to the signal numbering of the system we are running on)
|
|
||||||
to the signal numbers used by the gdb protocol (see enum target_signal
|
nib = ((sig & 0xf0) >> 4);
|
||||||
in gdb/target.h). */
|
|
||||||
nib = ((signo & 0xf0) >> 4);
|
|
||||||
*buf++ = tohex (nib);
|
*buf++ = tohex (nib);
|
||||||
nib = signo & 0x0f;
|
nib = sig & 0x0f;
|
||||||
*buf++ = tohex (nib);
|
*buf++ = tohex (nib);
|
||||||
|
|
||||||
if (status == 'T')
|
if (status == 'T')
|
||||||
|
|
|
@ -190,13 +190,21 @@ main (int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
convert_ascii_to_int (own_buf + 1, &sig, 1);
|
convert_ascii_to_int (own_buf + 1, &sig, 1);
|
||||||
myresume (0, sig);
|
if (target_signal_to_host_p (sig))
|
||||||
|
signal = target_signal_to_host (sig);
|
||||||
|
else
|
||||||
|
signal = 0;
|
||||||
|
myresume (0, signal);
|
||||||
signal = mywait (&status);
|
signal = mywait (&status);
|
||||||
prepare_resume_reply (own_buf, status, signal);
|
prepare_resume_reply (own_buf, status, signal);
|
||||||
break;
|
break;
|
||||||
case 'S':
|
case 'S':
|
||||||
convert_ascii_to_int (own_buf + 1, &sig, 1);
|
convert_ascii_to_int (own_buf + 1, &sig, 1);
|
||||||
myresume (1, sig);
|
if (target_signal_to_host_p (sig))
|
||||||
|
signal = target_signal_to_host (sig);
|
||||||
|
else
|
||||||
|
signal = 0;
|
||||||
|
myresume (1, signal);
|
||||||
signal = mywait (&status);
|
signal = mywait (&status);
|
||||||
prepare_resume_reply (own_buf, status, signal);
|
prepare_resume_reply (own_buf, status, signal);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
typedef long long CORE_ADDR;
|
typedef long long CORE_ADDR;
|
||||||
|
|
||||||
#include "regcache.h"
|
#include "regcache.h"
|
||||||
|
#include "gdb/signals.h"
|
||||||
|
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
|
|
||||||
|
@ -84,6 +85,10 @@ void decode_m_packet (char *from, CORE_ADDR * mem_addr_ptr,
|
||||||
void decode_M_packet (char *from, CORE_ADDR * mem_addr_ptr,
|
void decode_M_packet (char *from, CORE_ADDR * mem_addr_ptr,
|
||||||
unsigned int *len_ptr, char *to);
|
unsigned int *len_ptr, char *to);
|
||||||
|
|
||||||
|
/* 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);
|
||||||
|
|
||||||
/* Functions from utils.c */
|
/* Functions from utils.c */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue