|
From: <sv...@va...> - 2012-07-20 23:40:42
|
philippe 2012-07-21 00:40:35 +0100 (Sat, 21 Jul 2012)
New Revision: 12767
Log:
Document Helgrind limitation that old access stack traces have maximum 8 entries
#define N_FRAMES 8
(defined in libhb_core.c:3888)
implies that 'other thread' stack traces are limited to 8,
even with a bigger --num-callers.
=> document this in the manual to avoid that a user believes this is a
bug in the stack trace logic of Valgrind.
Modified files:
trunk/helgrind/docs/hg-manual.xml
Modified: trunk/helgrind/docs/hg-manual.xml (+6 -2)
===================================================================
--- trunk/helgrind/docs/hg-manual.xml 2012-07-20 17:46:54 +01:00 (rev 12766)
+++ trunk/helgrind/docs/hg-manual.xml 2012-07-21 00:40:35 -23:00 (rev 12767)
@@ -656,7 +656,9 @@
"<computeroutput>This conflicts with a previous
write</computeroutput>". This shows a previous access which also
accessed the stated address, and which is believed to be racing
-against the access in the first call stack.</para>
+against the access in the first call stack. Note that this second
+call stack is limited to a maximum of 8 entries to limit the
+memory usage.</para>
<para>Finally, Helgrind may attempt to give a description of the
raced-on address in source level terms. In this example, it
@@ -1099,7 +1101,9 @@
Helgrind collects enough information about "old" accesses that
it can produce two stack traces in a race report -- both the
stack trace for the current access, and the trace for the
- older, conflicting access.</para>
+ older, conflicting access. To limit memory usage, "old" accesses
+ stack traces are limited to a maximum of 8 entries, even if
+ <option>--num-callers</option> value is bigger.</para>
<para>Collecting such information is expensive in both speed and
memory, particularly for programs that do many inter-thread
synchronisation events (locks, unlocks, etc). Without such
|