[RFC stub-side break conditions 0/5] General info

Luis Machado luis_gustavo@mentor.com
Thu Jan 5 14:56:00 GMT 2012


Hi,

This patch series adds support and required machinery to enable 
breakpoint condition evaluation on the stub's side instead of solely in 
the host's side.

When the evaluation is done on the stub's side, we eliminate all the 
useless stub -> GDB trap notifications that happen when the condition is 
false, potentially improving the speed of debugging on slower connections.

Condition evaluation is achieved through the use of the agent expression 
machinery that is already in place for GDBServer. We extend the z0/z1 
packets to carry additional data. In this case it carries the bytecode 
expression that should be used for evaluation. Each z0/z1 packet will 
carry all the conditions for all the locations at an specific address.

If we can't convert an expression into a valid agent expression (due to 
complex types of host-specific data), then we fallback to evaluating the 
condition on GDB's side.

A new switch was added to make it possible to choose between gdb/stub 
evaluation modes: set/show breakpoint condition-evaluation.  It defaults 
to "auto". "auto" means "gdb" whenever the stub can't handle breakpoint 
condition evaluation or when the expression can't be evaluated by the 
agent expression machinery. "auto" means "stub" when the remote stub 
supports evaluating conditions and if the expressions generate valid 
agent expression bytecodes.

The patch is divided in 5 parts:

Part 1: Documentation bits
Part 2: Protocol and feature changes
Part 3: GDB-specific changes
Part 4: GDBServer tracepoint/agent expression common code cleanup
Part 5: GDBServer breakpoint condition evaluation enablement

Luis
lgustavo@codesourcery.com



More information about the Gdb-patches mailing list