This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFC] IA64 handling of breakpoints on L in MLX instruction bundles
- From: Petr Sorfa <petrs at caldera dot com>
- To: "gdb-patches at sources dot redhat dot com" <gdb-patches at sources dot redhat dot com>
- Date: Wed, 08 May 2002 15:56:51 -0400
- Subject: [RFC] IA64 handling of breakpoints on L in MLX instruction bundles
- Organization: Caldera
Hi,
GDB cannot handle breakpoints on the L instruction type in MLX
instruction bundles.
Current GDB inserts the breakpoint in L (second slot of the bundle). Not
only is this code never executed (it is specifically designed to hold
long integers) it actually changes the value for the associated
instruction (MOVL) in the third slot. So (a) the breakpoint doesn't work
and (b) the actual program has now changed functionally as the
breakpoint will never be hit to revert the instruction bundle to its
correct state.
I have a patch for this. For both the ia64_memory_insert_breakpoint and
ia64_memory_remove_breakpoint routines in ia64-tdep.c a check is made on
the instruction bundle. If it is the second slot and an L type, then the
slot number is bumped up to the 3rd slot. This effectively achieves the
required behaviour.
Is this solution acceptable?
Petr