This is the mail archive of the gdb-patches@sourceware.org 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]

Re: [PATCH] DW_CFA_GNU_negative_offset_extended support


Hi Daniel,

the patch is updated according to your advices.


Thanks,
Jan


On Wed, 03 Jan 2007 19:27:42 +0100, Daniel Jacobowitz wrote:
> On Sat, Dec 30, 2006 at 08:06:15PM +0100, Jan Kratochvil wrote:
...
> > +	    case DW_CFA_GNU_negative_offset_extended:
> > +	      insn_ptr = read_uleb128 (insn_ptr, insn_end, &reg);
> > +	      insn_ptr = read_uleb128 (insn_ptr, insn_end, &offset);
> > +	      offset *= fs->data_align;
> > +	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
> > +	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET;
> > +	      fs->regs.reg[reg].loc.offset = -offset;
> > +	      break;
> > +
> 
> What about the eh_frame_p check in all the other cases?

Fixed.  I see you also probably solved me some other Bug (PPC CFI unwinding),
thanks.


> Do you know if DW_CFA_GNU_negative_offset_extended was a factored
> offset?

Yes it is (svn diff -c 49334 gcc/dwarf2out.c).
OTOH I just trusted the code patch author (Andrew Cagney).


> > +# We should stop in abort(3).
> > +
> > +gdb_test "run" \
> > +         "Program received signal SIGABRT,.*" \
> > +         "run"
> 
> Please use gdb_run_cmd instead.  See other tests for an example.
> ("run" doesn't work for remote targets.)

Fixed.  Copying other code just is not enough for GDB...


> > +send_gdb "info frame\n";
> > +gdb_expect {
> > +    -re "Stack level 3, frame at (0x\[0-9a-f\]+):.*Saved registers:.* ecx at (0x\[0-9a-f\]+),.*" {
> > +	pass "Value of the CFI inserted register"
> > +	if { [string compare $expect_out(1,string) $expect_out(2,string)] } then {
> > +	    fail "Value of the CFI inserted register"
> > +	} else {
> > +	    pass "Value of the CFI inserted register"
> > +	}
> > +    }
> > +    default {
> > +	fail "Existence of the CFI inserted register"
> > +    }
> > +}
> 
> Please use gdb_test_multiple instead of send_gdb / gdb_expect.  Then
> you won't need the default case, which was wrong above anyway - it
> has to consume the prompt.

Good hint, the code is now cleaner (and fixed).


> Also, I think you have a typo - didn't mean for that to pass twice,
> right?

Unfortunately right.

Attachment: gdb-6.5-DW_CFA_GNU_negative_offset_extended.patch
Description: Text document


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