Better document the limitation of gdbsrv for registers and flags values

During investigations of 303963, Josef found that flags are not always
up to date and that --vex-guest-max-insns=1 ensures flags values
are (more?) correct.

=> enhance the paragraph in the gdbserver limitations to reference
this option and give an idea of the performance impact of the other
options helping to increase the precision of registers and flags.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12778
This commit is contained in:
Philippe Waroquiers 2012-07-24 20:24:39 +00:00
parent 244ccd72d3
commit 668df8d006

View File

@ -784,12 +784,24 @@ are however some limitations and peculiarities:</para>
</listitem>
<listitem>
<para>Registers values.</para>
<para>When Valgrind gdbserver stops on an error, registers values
might not be always up to date due to the optimisations done by
the Valgrind core. The
option <option>--vex-iropt-precise-memory-exns=yes</option>
ensures precise registers values by disabling some optimisations.
<para>Processor registers and flags values.</para>
<para>When Valgrind gdbserver stops on an error, on a breakpoint
or when single stepping, registers and flags values might not be always
up to date due to the optimisations done by the Valgrind core.
Disabling some optimisations using the following options will increase
the precision of registers and flags values.
An idea of the performance impact for memcheck is given for each option.
<itemizedlist>
<listitem>
<option>--vex-iropt-precise-memory-exns=yes</option> (10% performance impact).
</listitem>
<listitem>
<option>--vex-guest-max-insns=1</option> (200% performance impact).
</listitem>
<listitem>
<option>--vgdb=full</option> (250% performance impact).
</listitem>
</itemizedlist>
</para>
</listitem>