This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Seg fault whilst stepping when watch set


Unfortunately I can't reproduce this without the intel compiler/f90. 
However, the relevant GDB output was:
(gdb) r
Starting program: /home/david/f90demo
[Thread debugging using libthread_db enabled]
[New Thread -151084928 (LWP 24298)]
[Switching to Thread -151084928 (LWP 24298)]

Breakpoint 1, 0x08089e8a in main ()
(gdb) step
Single stepping until exit from function main,
which has no line number information.

sample () at f90demo.f90:72
72      CALL MPI_INIT(ierr)
Current language:  auto; currently fortran
(gdb) watch i
Hardware watchpoint 2: i
(gdb) step
Error in re-setting breakpoint 2:
No symbol "i" in current context.
<bang, seg fault>

This being line when breakpoint.c:949 calls evaluate_expression where
exp is 0.

I propose the attached, which has fixed this seg fault on my system. 
Permission to commit?

2004-10-17    <dsl@sources.redhat.com>

	* breakpoint.c (insert_bp_location): Regenerate expression in
	breakpoint owner for watchpoints if null.


Index: gdb/breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.183
diff -c -p -r1.183 breakpoint.c
*** gdb/breakpoint.c	8 Oct 2004 17:30:46 -0000	1.183
--- gdb/breakpoint.c	17 Oct 2004 00:01:44 -0000
*************** insert_bp_location (struct bp_location *
*** 946,951 ****
--- 946,953 ----
  	     Make sure the value returned isn't lazy; we use
  	     laziness to determine what memory GDB actually needed
  	     in order to compute the value of the expression.  */
+ 	  if (!bpt->owner->exp) 
+ 	    bpt->owner->exp = parse_expression (bpt->owner->exp_string);
  	  v = evaluate_expression (bpt->owner->exp);
  	  VALUE_CONTENTS (v);
  	  value_release_to_mark (mark);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]