|
From: Tom H. <to...@co...> - 2006-12-22 16:31:09
|
In message <002701c725e5$bee0f1e0$0100a8c0@pc07653>
"Nuno Lopes" <nun...@sa...> wrote:
> I'm already using a valgrind 3.2.2 patch provided by Julian Seward himself
> (http://sourceforge.net/mailarchive/message.php?msg_id=37706183),
> but --gen-suppressions is still not working for some edge cases.
>
> For example:
> ==17024== Invalid read of size 8
> ==17024== at 0x87839B8: (within /p2/var/php_gcov/PHP_HEAD/sapi/cli/php)
So this is where the read happened.
> ==17024== Address 0x6C380E8 is 96 bytes inside a block of size 102 alloc'd
> ==17024== at 0x401DD95: realloc (vg_replace_malloc.c:306)
> ==17024== by 0x57EE3E3: nlolgserv (in
> /p2/usr/lib/oracle/xe/app/oracle/produc/10.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x57EE787: nlolgobj (in
> /p2/usr/lib/oracle/xe/app/oracle/product10.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x56E49A1: nnfun2a (in
> /p2/usr/lib/oracle/xe/app/oracle/product/0.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x56E4613: nnfsn2a (in
> /p2/usr/lib/oracle/xe/app/oracle/product/0.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x57256C4: niqname (in
> /p2/usr/lib/oracle/xe/app/oracle/product/0.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x5650D14: kwfnran (in
> /p2/usr/lib/oracle/xe/app/oracle/product/0.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x5619E33: kwfcinit (in
> /p2/usr/lib/oracle/xe/app/oracle/product10.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x547D59A: kpuatch (in
> /p2/usr/lib/oracle/xe/app/oracle/product/0.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x5597990: OCIServerAttach (in
> /p2/usr/lib/oracle/xe/app/oracle/roduct/10.2.0/server/lib/libclntsh.so.10.1)
> ==17024== by 0x8252F3E: php_oci_do_connect_ex (oci8.c:1282)
> ==17024== by 0x825092A: php_oci_do_connect (oci8.c:1005)
and this is where the block you are reading was allocated (but you are
reading two bytes past the end of the block).
> {
> <insert a suppression name here>
> Memcheck:Addr8
> obj:/p2/var/php_gcov/PHP_HEAD/sapi/cli/php
> }
>
>
> The generated suppression should (in theory) suppress all
> invalid-read-size-8 errors from the php binary, so it is pretty useless (I
> want to fetch them afterall).
But there is no more information - probably there is too much
optimisation and/or too little debugging in the PHP library for
valgrind to be able to trace the stack back any further
> I already tried a few combinations of suppressions, but I wasn't able to
> shut it up, like:
> {
> oracleXE6
> Memcheck:Value8
> obj:/p2/var/php_gcov/*/sapi/cli/php (with and without this line)
> fun:realloc
> fun:nlolgserv
> obj:/p2/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libclntsh.so.10.1
> }
You're mixing up the two traces there. You can't suppress based on
where the block was allocated anyway, so you only have that one line
to go on which obviously isn't enough.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|