This is the mail archive of the
mailing list for the GDB project.
Re: [PATCH 1/2] [GDBserver] Fix compiling conditional expressions accessing registers
- From: Pedro Alves <palves at redhat dot com>
- To: Ulrich Weigand <uweigand at de dot ibm dot com>, Yao Qi <qiyaoltc at gmail dot com>
- Cc: Pierre Langlois <pierre dot langlois at arm dot com>, gdb-patches at sourceware dot org, cole945 at gmail dot com
- Date: Wed, 16 Sep 2015 14:54:01 +0100
- Subject: Re: [PATCH 1/2] [GDBserver] Fix compiling conditional expressions accessing registers
- Authentication-results: sourceware.org; auth=none
- References: <20150916115014 dot 0A5EA1DA8 at oc7340732750 dot ibm dot com>
On 09/16/2015 12:50 PM, Ulrich Weigand wrote:
> Yao Qi wrote:
>> Pierre Langlois <firstname.lastname@example.org> writes:
>>> This patch fixes this issue by replacing `gdb_agent_get_raw_reg' with a
>>> `gdb_agent_get_reg' function which takes the tracepoint context object
>>> as argument instead of a raw buffer. Additionally, this patch makes
>>> this function architecture independent by initializing the context's
>>> regcache early and making `gdb_agent_get_reg' use `collect_register'.
>>> As a result, the fast tracepoint context object does not need to
>>> contain the raw register buffer.
>> The fix looks reasonable to me as it makes no sense to keep two copies
>> of registers. I go through this patch, and it looks good to me.
> It seems to me this was intended as performance optimization to avoid
> having to do the full regcache setup every time a tracepoint is hit,
> in case we're not actually tracing registers ...
> Not sure whether this is a real performance concern for actual use
> cases though. I don't have any actual measurements ...
Yes, I was just now reading this, and was going to say the same.
E.g., the original fast tracepoints code was tuned to avoid as much
work as possible in the condition-fails scenario, when the condition
only accesses a global. That is, e.g., "trace foo if debug_knob == 1".
I no longer have the numbers captured at the time though.