Re: [PATCH] Seg fault whilst stepping when watch set [ping!] [in breakpoint.c]

David Lecomber
2004-11-21T00:24:41Z

> Also, last time we talked, I asked whether this could be due to the
> Fedora exec-shield feature, but didn't see any response to that.
> Could you please check that?

I'm not sure how to verify that one - the seg fault happens running as
either root or normal user, if that's related..

Thanks for looking at this bug, here's the latest stack trace and
session log for current CVS:

Program received signal SIGSEGV, Segmentation fault.
evaluate_subexp (expect_type=0x0, exp=0x0, pos=0xbfffed14,
noside=EVAL_NORMAL) at eval.c:71
71 return (*exp->language_defn->la_exp_desc->evaluate_exp)
(gdb) bt
#0 evaluate_subexp (expect_type=0x0, exp=0x0, pos=0xbfffed14,
noside=EVAL_NORMAL) at eval.c:71
#1 0x080f120d in evaluate_expression (exp=0x0) at eval.c:161
#2 0x080e159d in insert_bp_location (bpt=0x85208d0,
tmp_error_stream=0x8493008, disabled_breaks=0xbfffedb0,
process_warning=0xbfffedb4, hw_breakpoint_error=0xbfffedb8) at
breakpoint.c:949
#3 0x080e1817 in insert_breakpoints () at breakpoint.c:1149
#4 0x081118f9 in keep_going (ecs=0xbfffeeb0) at infrun.c:2848
#5 0x0810ff76 in handle_inferior_event (ecs=0xbfffeeb0) at
infrun.c:2672
#6 0x0810f617 in wait_for_inferior () at infrun.c:996
#7 0x0810f3e5 in proceed (addr=1, siggnal=TARGET_SIGNAL_HUP, step=1) at
infrun.c:816
#8 0x0810c9c3 in step_1 (skip_subroutines=1, single_inst=0,
count_string=0x0) at infcmd.c:688
#9 0x0810c77e in next_command (count_string=0x0, from_tty=1) at
infcmd.c:585
#10 0x080c1b7e in do_cfunc (c=0xbfffed14, args=0x0, from_tty=1) at
cli/cli-decode.c:57
#11 0x080c356e in cmd_func (cmd=0x83f8c30, args=0x0, from_tty=1) at
cli/cli-decode.c:1627
#12 0x080989ef in execute_command (p=0x83e08e9 "", from_tty=1) at
top.c:733

the session log,

(gdb) b f90demo.f90 : 41
During symbol reading, unsupported tag: 'DW_TAG_module'.
During symbol reading, Attribute value is not a constant
(DW_FORM_block1).
Breakpoint 1 at 0x804b007: file f90demo.f90, line 41.
(gdb) r
Starting program: /home/david/f90demo

Breakpoint 1, sample () at f90demo.f90:86
warning: Source file is more recent than executable.

86 CALL MPI_INIT(ierr)
Current language: auto; currently fortran
(gdb) watch i
During symbol reading, incomplete CFI data; unspecified registers (e.g.,
eax) at 0x804bc35.
Hardware watchpoint 2: i
(gdb) n
Error in re-setting breakpoint 2:
No symbol "i" in current context.
During symbol reading, incomplete CFI data; unspecified registers (e.g.,
eax) at 0xb7f3b612.
#

I know the patch I originally suggested could be a cure of the symptom,
rather than the cause - but as it's harmless, if we can't figure out why
it happens, it could be worth just committing anyway: all the patch does
is check a value is non-null, and if so takes action - without the patch
such a scenario will always segfault!

Cheers
David