* target.h (enum target_signal): Move definition from here.
* defs.h (enum target_signal): To here. * config/arc/tm-arc.h (arc_software_single_step): Change type of first parameter to enum target_signal. * config/rs6000/tm-rs6000.h (rs6000_software_single_step): Ditto. * config/sparc/tm-sparc.h (sparc_software_single_step): Ditto. * rs6000-tdep.c (rs6000_software_single_step): Update.
This commit is contained in:
parent
b0dad76219
commit
379d08a1d4
8 changed files with 165 additions and 150 deletions
|
@ -1,3 +1,14 @@
|
|||
2001-03-20 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* target.h (enum target_signal): Move definition from here.
|
||||
* defs.h (enum target_signal): To here.
|
||||
|
||||
* config/arc/tm-arc.h (arc_software_single_step): Change type of
|
||||
first parameter to enum target_signal.
|
||||
* config/rs6000/tm-rs6000.h (rs6000_software_single_step): Ditto.
|
||||
* config/sparc/tm-sparc.h (sparc_software_single_step): Ditto.
|
||||
* rs6000-tdep.c (rs6000_software_single_step): Update.
|
||||
|
||||
2001-03-20 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* frame.h (SIZEOF_FRAME_SAVED_REGS): Report an error if macro
|
||||
|
|
|
@ -64,7 +64,7 @@ extern CORE_ADDR arc_skip_prologue (CORE_ADDR, int);
|
|||
/* We don't have a reliable single step facility.
|
||||
??? We do have a cycle single step facility, but that won't work. */
|
||||
#define SOFTWARE_SINGLE_STEP_P() 1
|
||||
extern void arc_software_single_step (unsigned int, int);
|
||||
extern void arc_software_single_step (enum target_signal, int);
|
||||
#define SOFTWARE_SINGLE_STEP(sig,bp_p) arc_software_single_step (sig, bp_p)
|
||||
|
||||
/* FIXME: Need to set STEP_SKIPS_DELAY. */
|
||||
|
|
|
@ -99,7 +99,7 @@ extern void aix_process_linenos (void);
|
|||
/* RS6000/AIX does not support PT_STEP. Has to be simulated. */
|
||||
|
||||
#define SOFTWARE_SINGLE_STEP_P() 1
|
||||
extern void rs6000_software_single_step (unsigned int, int);
|
||||
extern void rs6000_software_single_step (enum target_signal, int);
|
||||
#define SOFTWARE_SINGLE_STEP(sig,bp_p) rs6000_software_single_step (sig, bp_p)
|
||||
|
||||
/* Notice when a new child process is started. */
|
||||
|
|
|
@ -740,7 +740,7 @@ extern void sparc32_extract_return_value (struct type *, char[], char *);
|
|||
/* Sparc has no reliable single step ptrace call */
|
||||
|
||||
#define SOFTWARE_SINGLE_STEP_P() 1
|
||||
extern void sparc_software_single_step (unsigned int, int);
|
||||
extern void sparc_software_single_step (enum target_signal, int);
|
||||
#define SOFTWARE_SINGLE_STEP(sig,bp_p) sparc_software_single_step (sig,bp_p)
|
||||
|
||||
/* We need more arguments in a frame specification for the
|
||||
|
|
143
gdb/defs.h
143
gdb/defs.h
|
@ -227,6 +227,149 @@ enum precision_type
|
|||
unspecified_precision
|
||||
};
|
||||
|
||||
/* The numbering of these signals is chosen to match traditional unix
|
||||
signals (insofar as various unices use the same numbers, anyway).
|
||||
It is also the numbering of the GDB remote protocol. Other remote
|
||||
protocols, if they use a different numbering, should make sure to
|
||||
translate appropriately.
|
||||
|
||||
Since these numbers have actually made it out into other software
|
||||
(stubs, etc.), you mustn't disturb the assigned numbering. If you
|
||||
need to add new signals here, add them to the end of the explicitly
|
||||
numbered signals.
|
||||
|
||||
This is based strongly on Unix/POSIX signals for several reasons:
|
||||
(1) This set of signals represents a widely-accepted attempt to
|
||||
represent events of this sort in a portable fashion, (2) we want a
|
||||
signal to make it from wait to child_wait to the user intact, (3) many
|
||||
remote protocols use a similar encoding. However, it is
|
||||
recognized that this set of signals has limitations (such as not
|
||||
distinguishing between various kinds of SIGSEGV, or not
|
||||
distinguishing hitting a breakpoint from finishing a single step).
|
||||
So in the future we may get around this either by adding additional
|
||||
signals for breakpoint, single-step, etc., or by adding signal
|
||||
codes; the latter seems more in the spirit of what BSD, System V,
|
||||
etc. are doing to address these issues. */
|
||||
|
||||
/* For an explanation of what each signal means, see
|
||||
target_signal_to_string. */
|
||||
|
||||
enum target_signal
|
||||
{
|
||||
/* Used some places (e.g. stop_signal) to record the concept that
|
||||
there is no signal. */
|
||||
TARGET_SIGNAL_0 = 0,
|
||||
TARGET_SIGNAL_FIRST = 0,
|
||||
TARGET_SIGNAL_HUP = 1,
|
||||
TARGET_SIGNAL_INT = 2,
|
||||
TARGET_SIGNAL_QUIT = 3,
|
||||
TARGET_SIGNAL_ILL = 4,
|
||||
TARGET_SIGNAL_TRAP = 5,
|
||||
TARGET_SIGNAL_ABRT = 6,
|
||||
TARGET_SIGNAL_EMT = 7,
|
||||
TARGET_SIGNAL_FPE = 8,
|
||||
TARGET_SIGNAL_KILL = 9,
|
||||
TARGET_SIGNAL_BUS = 10,
|
||||
TARGET_SIGNAL_SEGV = 11,
|
||||
TARGET_SIGNAL_SYS = 12,
|
||||
TARGET_SIGNAL_PIPE = 13,
|
||||
TARGET_SIGNAL_ALRM = 14,
|
||||
TARGET_SIGNAL_TERM = 15,
|
||||
TARGET_SIGNAL_URG = 16,
|
||||
TARGET_SIGNAL_STOP = 17,
|
||||
TARGET_SIGNAL_TSTP = 18,
|
||||
TARGET_SIGNAL_CONT = 19,
|
||||
TARGET_SIGNAL_CHLD = 20,
|
||||
TARGET_SIGNAL_TTIN = 21,
|
||||
TARGET_SIGNAL_TTOU = 22,
|
||||
TARGET_SIGNAL_IO = 23,
|
||||
TARGET_SIGNAL_XCPU = 24,
|
||||
TARGET_SIGNAL_XFSZ = 25,
|
||||
TARGET_SIGNAL_VTALRM = 26,
|
||||
TARGET_SIGNAL_PROF = 27,
|
||||
TARGET_SIGNAL_WINCH = 28,
|
||||
TARGET_SIGNAL_LOST = 29,
|
||||
TARGET_SIGNAL_USR1 = 30,
|
||||
TARGET_SIGNAL_USR2 = 31,
|
||||
TARGET_SIGNAL_PWR = 32,
|
||||
/* Similar to SIGIO. Perhaps they should have the same number. */
|
||||
TARGET_SIGNAL_POLL = 33,
|
||||
TARGET_SIGNAL_WIND = 34,
|
||||
TARGET_SIGNAL_PHONE = 35,
|
||||
TARGET_SIGNAL_WAITING = 36,
|
||||
TARGET_SIGNAL_LWP = 37,
|
||||
TARGET_SIGNAL_DANGER = 38,
|
||||
TARGET_SIGNAL_GRANT = 39,
|
||||
TARGET_SIGNAL_RETRACT = 40,
|
||||
TARGET_SIGNAL_MSG = 41,
|
||||
TARGET_SIGNAL_SOUND = 42,
|
||||
TARGET_SIGNAL_SAK = 43,
|
||||
TARGET_SIGNAL_PRIO = 44,
|
||||
TARGET_SIGNAL_REALTIME_33 = 45,
|
||||
TARGET_SIGNAL_REALTIME_34 = 46,
|
||||
TARGET_SIGNAL_REALTIME_35 = 47,
|
||||
TARGET_SIGNAL_REALTIME_36 = 48,
|
||||
TARGET_SIGNAL_REALTIME_37 = 49,
|
||||
TARGET_SIGNAL_REALTIME_38 = 50,
|
||||
TARGET_SIGNAL_REALTIME_39 = 51,
|
||||
TARGET_SIGNAL_REALTIME_40 = 52,
|
||||
TARGET_SIGNAL_REALTIME_41 = 53,
|
||||
TARGET_SIGNAL_REALTIME_42 = 54,
|
||||
TARGET_SIGNAL_REALTIME_43 = 55,
|
||||
TARGET_SIGNAL_REALTIME_44 = 56,
|
||||
TARGET_SIGNAL_REALTIME_45 = 57,
|
||||
TARGET_SIGNAL_REALTIME_46 = 58,
|
||||
TARGET_SIGNAL_REALTIME_47 = 59,
|
||||
TARGET_SIGNAL_REALTIME_48 = 60,
|
||||
TARGET_SIGNAL_REALTIME_49 = 61,
|
||||
TARGET_SIGNAL_REALTIME_50 = 62,
|
||||
TARGET_SIGNAL_REALTIME_51 = 63,
|
||||
TARGET_SIGNAL_REALTIME_52 = 64,
|
||||
TARGET_SIGNAL_REALTIME_53 = 65,
|
||||
TARGET_SIGNAL_REALTIME_54 = 66,
|
||||
TARGET_SIGNAL_REALTIME_55 = 67,
|
||||
TARGET_SIGNAL_REALTIME_56 = 68,
|
||||
TARGET_SIGNAL_REALTIME_57 = 69,
|
||||
TARGET_SIGNAL_REALTIME_58 = 70,
|
||||
TARGET_SIGNAL_REALTIME_59 = 71,
|
||||
TARGET_SIGNAL_REALTIME_60 = 72,
|
||||
TARGET_SIGNAL_REALTIME_61 = 73,
|
||||
TARGET_SIGNAL_REALTIME_62 = 74,
|
||||
TARGET_SIGNAL_REALTIME_63 = 75,
|
||||
|
||||
/* Used internally by Solaris threads. See signal(5) on Solaris. */
|
||||
TARGET_SIGNAL_CANCEL = 76,
|
||||
|
||||
/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
|
||||
Linux does, and we can't disturb the numbering, since it's part
|
||||
of the protocol. Note that in some GDB's TARGET_SIGNAL_REALTIME_32
|
||||
is number 76. */
|
||||
TARGET_SIGNAL_REALTIME_32,
|
||||
/* Yet another pain, IRIX 6 has SIG64. */
|
||||
TARGET_SIGNAL_REALTIME_64,
|
||||
|
||||
#if defined(MACH) || defined(__MACH__)
|
||||
/* Mach exceptions */
|
||||
TARGET_EXC_BAD_ACCESS,
|
||||
TARGET_EXC_BAD_INSTRUCTION,
|
||||
TARGET_EXC_ARITHMETIC,
|
||||
TARGET_EXC_EMULATION,
|
||||
TARGET_EXC_SOFTWARE,
|
||||
TARGET_EXC_BREAKPOINT,
|
||||
#endif
|
||||
TARGET_SIGNAL_INFO,
|
||||
|
||||
/* Some signal we don't know about. */
|
||||
TARGET_SIGNAL_UNKNOWN,
|
||||
|
||||
/* Use whatever signal we use when one is not specifically specified
|
||||
(for passing to proceed and so on). */
|
||||
TARGET_SIGNAL_DEFAULT,
|
||||
|
||||
/* Last and unused enum value, for sizing arrays, etc. */
|
||||
TARGET_SIGNAL_LAST
|
||||
};
|
||||
|
||||
/* the cleanup list records things that have to be undone
|
||||
if an error happens (descriptors to be closed, memory to be freed, etc.)
|
||||
Each link in the chain records a function to call and an
|
||||
|
|
|
@ -299,7 +299,8 @@ rs6000_breakpoint_from_pc (CORE_ADDR *bp_addr, int *bp_size)
|
|||
/* AIX does not support PT_STEP. Simulate it. */
|
||||
|
||||
void
|
||||
rs6000_software_single_step (unsigned int signal, int insert_breakpoints_p)
|
||||
rs6000_software_single_step (enum target_signal signal,
|
||||
int insert_breakpoints_p)
|
||||
{
|
||||
#define INSNLEN(OPCODE) 4
|
||||
|
||||
|
|
143
gdb/target.h
143
gdb/target.h
|
@ -124,149 +124,6 @@ enum target_waitkind
|
|||
TARGET_WAITKIND_IGNORE
|
||||
};
|
||||
|
||||
/* The numbering of these signals is chosen to match traditional unix
|
||||
signals (insofar as various unices use the same numbers, anyway).
|
||||
It is also the numbering of the GDB remote protocol. Other remote
|
||||
protocols, if they use a different numbering, should make sure to
|
||||
translate appropriately.
|
||||
|
||||
Since these numbers have actually made it out into other software
|
||||
(stubs, etc.), you mustn't disturb the assigned numbering. If you
|
||||
need to add new signals here, add them to the end of the explicitly
|
||||
numbered signals.
|
||||
|
||||
This is based strongly on Unix/POSIX signals for several reasons:
|
||||
(1) This set of signals represents a widely-accepted attempt to
|
||||
represent events of this sort in a portable fashion, (2) we want a
|
||||
signal to make it from wait to child_wait to the user intact, (3) many
|
||||
remote protocols use a similar encoding. However, it is
|
||||
recognized that this set of signals has limitations (such as not
|
||||
distinguishing between various kinds of SIGSEGV, or not
|
||||
distinguishing hitting a breakpoint from finishing a single step).
|
||||
So in the future we may get around this either by adding additional
|
||||
signals for breakpoint, single-step, etc., or by adding signal
|
||||
codes; the latter seems more in the spirit of what BSD, System V,
|
||||
etc. are doing to address these issues. */
|
||||
|
||||
/* For an explanation of what each signal means, see
|
||||
target_signal_to_string. */
|
||||
|
||||
enum target_signal
|
||||
{
|
||||
/* Used some places (e.g. stop_signal) to record the concept that
|
||||
there is no signal. */
|
||||
TARGET_SIGNAL_0 = 0,
|
||||
TARGET_SIGNAL_FIRST = 0,
|
||||
TARGET_SIGNAL_HUP = 1,
|
||||
TARGET_SIGNAL_INT = 2,
|
||||
TARGET_SIGNAL_QUIT = 3,
|
||||
TARGET_SIGNAL_ILL = 4,
|
||||
TARGET_SIGNAL_TRAP = 5,
|
||||
TARGET_SIGNAL_ABRT = 6,
|
||||
TARGET_SIGNAL_EMT = 7,
|
||||
TARGET_SIGNAL_FPE = 8,
|
||||
TARGET_SIGNAL_KILL = 9,
|
||||
TARGET_SIGNAL_BUS = 10,
|
||||
TARGET_SIGNAL_SEGV = 11,
|
||||
TARGET_SIGNAL_SYS = 12,
|
||||
TARGET_SIGNAL_PIPE = 13,
|
||||
TARGET_SIGNAL_ALRM = 14,
|
||||
TARGET_SIGNAL_TERM = 15,
|
||||
TARGET_SIGNAL_URG = 16,
|
||||
TARGET_SIGNAL_STOP = 17,
|
||||
TARGET_SIGNAL_TSTP = 18,
|
||||
TARGET_SIGNAL_CONT = 19,
|
||||
TARGET_SIGNAL_CHLD = 20,
|
||||
TARGET_SIGNAL_TTIN = 21,
|
||||
TARGET_SIGNAL_TTOU = 22,
|
||||
TARGET_SIGNAL_IO = 23,
|
||||
TARGET_SIGNAL_XCPU = 24,
|
||||
TARGET_SIGNAL_XFSZ = 25,
|
||||
TARGET_SIGNAL_VTALRM = 26,
|
||||
TARGET_SIGNAL_PROF = 27,
|
||||
TARGET_SIGNAL_WINCH = 28,
|
||||
TARGET_SIGNAL_LOST = 29,
|
||||
TARGET_SIGNAL_USR1 = 30,
|
||||
TARGET_SIGNAL_USR2 = 31,
|
||||
TARGET_SIGNAL_PWR = 32,
|
||||
/* Similar to SIGIO. Perhaps they should have the same number. */
|
||||
TARGET_SIGNAL_POLL = 33,
|
||||
TARGET_SIGNAL_WIND = 34,
|
||||
TARGET_SIGNAL_PHONE = 35,
|
||||
TARGET_SIGNAL_WAITING = 36,
|
||||
TARGET_SIGNAL_LWP = 37,
|
||||
TARGET_SIGNAL_DANGER = 38,
|
||||
TARGET_SIGNAL_GRANT = 39,
|
||||
TARGET_SIGNAL_RETRACT = 40,
|
||||
TARGET_SIGNAL_MSG = 41,
|
||||
TARGET_SIGNAL_SOUND = 42,
|
||||
TARGET_SIGNAL_SAK = 43,
|
||||
TARGET_SIGNAL_PRIO = 44,
|
||||
TARGET_SIGNAL_REALTIME_33 = 45,
|
||||
TARGET_SIGNAL_REALTIME_34 = 46,
|
||||
TARGET_SIGNAL_REALTIME_35 = 47,
|
||||
TARGET_SIGNAL_REALTIME_36 = 48,
|
||||
TARGET_SIGNAL_REALTIME_37 = 49,
|
||||
TARGET_SIGNAL_REALTIME_38 = 50,
|
||||
TARGET_SIGNAL_REALTIME_39 = 51,
|
||||
TARGET_SIGNAL_REALTIME_40 = 52,
|
||||
TARGET_SIGNAL_REALTIME_41 = 53,
|
||||
TARGET_SIGNAL_REALTIME_42 = 54,
|
||||
TARGET_SIGNAL_REALTIME_43 = 55,
|
||||
TARGET_SIGNAL_REALTIME_44 = 56,
|
||||
TARGET_SIGNAL_REALTIME_45 = 57,
|
||||
TARGET_SIGNAL_REALTIME_46 = 58,
|
||||
TARGET_SIGNAL_REALTIME_47 = 59,
|
||||
TARGET_SIGNAL_REALTIME_48 = 60,
|
||||
TARGET_SIGNAL_REALTIME_49 = 61,
|
||||
TARGET_SIGNAL_REALTIME_50 = 62,
|
||||
TARGET_SIGNAL_REALTIME_51 = 63,
|
||||
TARGET_SIGNAL_REALTIME_52 = 64,
|
||||
TARGET_SIGNAL_REALTIME_53 = 65,
|
||||
TARGET_SIGNAL_REALTIME_54 = 66,
|
||||
TARGET_SIGNAL_REALTIME_55 = 67,
|
||||
TARGET_SIGNAL_REALTIME_56 = 68,
|
||||
TARGET_SIGNAL_REALTIME_57 = 69,
|
||||
TARGET_SIGNAL_REALTIME_58 = 70,
|
||||
TARGET_SIGNAL_REALTIME_59 = 71,
|
||||
TARGET_SIGNAL_REALTIME_60 = 72,
|
||||
TARGET_SIGNAL_REALTIME_61 = 73,
|
||||
TARGET_SIGNAL_REALTIME_62 = 74,
|
||||
TARGET_SIGNAL_REALTIME_63 = 75,
|
||||
|
||||
/* Used internally by Solaris threads. See signal(5) on Solaris. */
|
||||
TARGET_SIGNAL_CANCEL = 76,
|
||||
|
||||
/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
|
||||
Linux does, and we can't disturb the numbering, since it's part
|
||||
of the protocol. Note that in some GDB's TARGET_SIGNAL_REALTIME_32
|
||||
is number 76. */
|
||||
TARGET_SIGNAL_REALTIME_32,
|
||||
/* Yet another pain, IRIX 6 has SIG64. */
|
||||
TARGET_SIGNAL_REALTIME_64,
|
||||
|
||||
#if defined(MACH) || defined(__MACH__)
|
||||
/* Mach exceptions */
|
||||
TARGET_EXC_BAD_ACCESS,
|
||||
TARGET_EXC_BAD_INSTRUCTION,
|
||||
TARGET_EXC_ARITHMETIC,
|
||||
TARGET_EXC_EMULATION,
|
||||
TARGET_EXC_SOFTWARE,
|
||||
TARGET_EXC_BREAKPOINT,
|
||||
#endif
|
||||
TARGET_SIGNAL_INFO,
|
||||
|
||||
/* Some signal we don't know about. */
|
||||
TARGET_SIGNAL_UNKNOWN,
|
||||
|
||||
/* Use whatever signal we use when one is not specifically specified
|
||||
(for passing to proceed and so on). */
|
||||
TARGET_SIGNAL_DEFAULT,
|
||||
|
||||
/* Last and unused enum value, for sizing arrays, etc. */
|
||||
TARGET_SIGNAL_LAST
|
||||
};
|
||||
|
||||
struct target_waitstatus
|
||||
{
|
||||
enum target_waitkind kind;
|
||||
|
|
|
@ -809,7 +809,8 @@ undoSStep (thread_info * th)
|
|||
}
|
||||
|
||||
void
|
||||
wince_software_single_step (unsigned int ignore, int insert_breakpoints_p)
|
||||
wince_software_single_step (enum target_signal ignore,
|
||||
int insert_breakpoints_p)
|
||||
{
|
||||
unsigned long pc;
|
||||
thread_info *th = current_thread; /* Info on currently selected thread */
|
||||
|
@ -949,7 +950,8 @@ undoSStep (thread_info * th)
|
|||
which would be executed. This code hails from sh-stub.c.
|
||||
*/
|
||||
void
|
||||
wince_software_single_step (unsigned int ignore, int insert_breakpoints_p)
|
||||
wince_software_single_step (enum target_signal ignore,
|
||||
int insert_breakpoints_p)
|
||||
{
|
||||
thread_info *th = current_thread; /* Info on currently selected thread */
|
||||
|
||||
|
@ -995,7 +997,8 @@ undoSStep (thread_info * th)
|
|||
}
|
||||
|
||||
void
|
||||
wince_software_single_step (unsigned int ignore, int insert_breakpoints_p)
|
||||
wince_software_single_step (enum target_signal ignore,
|
||||
int insert_breakpoints_p)
|
||||
{
|
||||
unsigned long pc;
|
||||
thread_info *th = current_thread; /* Info on currently selected thread */
|
||||
|
|
Loading…
Add table
Reference in a new issue