aboutsummaryrefslogtreecommitdiff
path: root/gdb/infrun.c
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>1998-04-11 05:43:33 +0000
committerJason Molenda <jmolenda@apple.com>1998-04-11 05:43:33 +0000
commitf0fce3b80b0f045dc926074f3378c7418e64757e (patch)
tree7991b9a36a8f9945f2c41d5f2a53e28a1b6a7051 /gdb/infrun.c
parentbaee3bc6e9db248118a7bb1bf571d8bd002ae6a5 (diff)
downloadgdb-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.c12
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