From: Philippe Waroquiers Date: Thu, 30 Jun 2016 20:28:53 +0000 (+0000) Subject: fix 364058 - clarify in manual limitations of array overruns detections X-Git-Tag: svn/VALGRIND_3_12_0~126 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35589fdb14f065ce752fb9083870a225b969efb5;p=thirdparty%2Fvalgrind.git fix 364058 - clarify in manual limitations of array overruns detections Further try to clarify again with more words the way sgcheck works and the implied limitations git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15897 --- diff --git a/NEWS b/NEWS index 3520e3b906..0df38cb6cb 100644 --- a/NEWS +++ b/NEWS @@ -107,6 +107,7 @@ where XXXXXX is the bug number as listed below. 363680 add renameat2() support 363705 arm64 missing syscall name_to_handle_at and open_by_handle_at 363714 ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at +364058 clarify in manual limitations of array overruns detections 364413 pselect sycallwrapper mishandles NULL sigmask 364728 Power PC, missing support for several HW registrs in get_otrack_shadow_offset_wrk() diff --git a/exp-sgcheck/docs/sg-manual.xml b/exp-sgcheck/docs/sg-manual.xml index a8ee31380e..c03e77811d 100644 --- a/exp-sgcheck/docs/sg-manual.xml +++ b/exp-sgcheck/docs/sg-manual.xml @@ -100,11 +100,19 @@ does not carry any restriction from one call to the next. Indeed, multiple threads may make multiple simultaneous calls to (e.g.) memcpy without mutual interference. +It is important to note that the association is done between + a binary instruction and an array, the + first time this binary instruction accesses an + array during a function call. When the same instruction is executed + again during the same function call, then SGCheck might report a + problem, if these further executions are not accessing the same + array. This technique causes several limitations in SGCheck, see + . + - Comparison with Memcheck @@ -146,6 +154,9 @@ of. function instantiation) is not checked for overrun, since SGCheck uses that as the "example" of how subsequent accesses should behave. + It also means that errors will not be found in an instruction + executed only once (e.g. because this instruction is not in a loop, + or the loop is executed only once).