PR libgcj/28352
* stacktrace.cc (getLineNumberForFrame): Roll back PC by 1 when
looking up line number for interpreted frame.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115370
138bc75d-0d04-0410-961f-
82ee72b054a4
+2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
+
+ PR libgcj/28352
+ * stacktrace.cc (getLineNumberForFrame): Roll back PC by 1 when
+ looking up line number for interpreted frame.
+
2006-07-07 Bryce McKinlay <mckinlay@redhat.com>
Geoffrey Keating <geoffk@apple.com>
_Jv_InterpClass *interp_class =
(_Jv_InterpClass *) interp_meth->defining_class->aux_info;
*sourceFileName = interp_class->source_file_name;
- *lineNum = interp_meth->get_source_line(frame->interp.pc);
+ // The interpreter advances the PC before executing an instruction,
+ // so roll-back 1 byte to ensure the line number is accurate.
+ *lineNum = interp_meth->get_source_line(frame->interp.pc - 1);
return;
}
#endif