diff options
author | Jason Molenda <jmolenda@apple.com> | 1998-04-11 05:43:33 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 1998-04-11 05:43:33 +0000 |
commit | f0fce3b80b0f045dc926074f3378c7418e64757e (patch) | |
tree | 7991b9a36a8f9945f2c41d5f2a53e28a1b6a7051 /gdb/infrun.c | |
parent | baee3bc6e9db248118a7bb1bf571d8bd002ae6a5 (diff) | |
download | gdb-f0fce3b80b0f045dc926074f3378c7418e64757e.zip gdb-f0fce3b80b0f045dc926074f3378c7418e64757e.tar.gz gdb-f0fce3b80b0f045dc926074f3378c7418e64757e.tar.bz2 |
Fri Apr 10 22:36:28 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
Update support for x86 Solaris 2.
* config/i386/tm-i386sol2.h, nm-i386sol2.h: New configuration
files for x86 Solaris 2.
* config/i386/i386sol2.mt, i386sol2.mh: Use them.
* config/sparc/tm-sun4sol2.h (PROCFS_GET_CARRY): New macro, extract
carry flag from a given regset.
(IS_STATIC_TRANSFORM_NAME): New macro, check if a symbol name
is a SunPro transformed name.
* i386-tdep.c (sunpro_static_transform_name): New function to
extract the source name from a SunPro transformed name.
* inferior.h (procfs_first_available, procfs_get_pid_fd):
Add prototypes.
* infrun.c (wait_for_inferior): Handle breakpoint hit in
signal handler without intervening stop in sigtramp.
* procfs.c (procfs_lwp_creation_handler): Use PROCFS_GET_CARRY
instead of direct access to the status register.
(procfs_get_pid_fd): New function, returns procfs fd for a given pid.
* sol-thread.c (ps_lgetLDT): New function, returns LDT for a given
lwpid.
(sol_find_new_threads): Handle failed libthread_db initialization
gracefully.
* stabsread.c (define_symbol): Use IS_STATIC_TRANSFORM_NAME
to check for a SunPro transformed symbol name.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index 9c5d1ea..f1eaaab 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -903,9 +903,15 @@ wait_for_inferior () Don't confuse that with hitting the breakpoint. What we check for is that 1) stepping is going on and 2) the pc before the last insn does not match - the address of the breakpoint before the current pc. */ - (prev_pc != stop_pc - DECR_PC_AFTER_BREAK - && CURRENTLY_STEPPING ()) : + the address of the breakpoint before the current pc + and 3) we didn't hit a breakpoint in a signal handler + without an intervening stop in sigtramp, which is + detected by a new stack pointer value below + any usual function calling stack adjustments. */ + (CURRENTLY_STEPPING () + && prev_pc != stop_pc - DECR_PC_AFTER_BREAK + && !(step_range_end + && read_sp () INNER_THAN (step_sp - 16))) : 0) ); /* Following in case break condition called a |