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]

[RFC] IA64 handling of breakpoints on L in MLX instruction bundles


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


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