Hello, 

I've been looking for the best way to valgrind a SystemC binary. Tried several 
valgrind versions including 3.6.0, 3.7.0, and 3.8.0 from SVN checked out 
yesterday. Running on SUSE64 SLES10SP3-3 x86-64_linux26. But the early messages 
are warnings on client switching stacks..


==11609== Warning: client switching stacks?  SP change: 0x7fefefa38 --> 
0x10c7e5238
==11609==          to suppress, use: --max-stackframe=29838321664 or greater
==11609== Warning: client switching stacks?  SP change: 0x10c7e4908 --> 
0xf2d16398
==11609==          to suppress, use: --max-stackframe=430761328 or greater
==11609== Warning: client switching stacks?  SP change: 0xf2d161c8 --> 
0x10c7d51f8
==11609==          to suppress, use: --max-stackframe=430698544 or greater
==11609==          further instances of this message will not be shown.
==11609== Use of uninitialised value of size 8
==11609==    at 0x13018711: ??? (in 
/path/systemc-2.2.0.icc.rpath/lib-linux64/debug/libsystemc.so)
==11609==    by 0xAAAAAAAAAAAAAAA9: ???
==11609==    by 0xBBBBBBBBBBBBBBBA: ???
==11609==    by 0xBBBBBBBBBBBBBBBA: ???
==11609==  Uninitialised value was created by a stack allocation
==11609==    at 0x130186F9: ??? (in 
/path/systemc-2.2.0.icc.rpath/lib-linux64/debug/libsystemc.so)


After adding --max-stackframe=29838321664 (and patching valgrind to support 
128GB processes) it gets hungrier...


==2195== Warning: client switching stacks?  SP change: 0x1ffefefa38 --> 
0x79fd32b8
==2195==          to suppress, use: --max-stackframe=135375472512 or greater


Now it's asking for ~126GB --max-stackframe?

If I don't set this flag valgrind issues lots of false positives around uninit 
values...

==2195== Use of uninitialised value of size 8
==2195==    at 0x13018741: ??? (in 
/path/systemc-2.2.0.icc.rpath/lib-linux64/debug/libsystemc.so)
==2195==    by 0xAAAAAAAAAAAAAAA9: ???
==2195==    by 0xBBBBBBBBBBBBBBBA: ???
==2195==    by 0xBBBBBBBBBBBBBBBA: ???
==2195==  Uninitialised value was created by a stack allocation
==2195==    at 0x13018729: ??? (in 
/path/systemc-2.2.0.icc.rpath/lib-linux64/debug/libsystemc.so)


The 0xAA.. and 0xBB.. come from using the malloc-fill and free-fill flags.. 


Here are the args I am using

--error-limit=no --track-origins=yes --log-file=valgrind.log --leak-check=full 
--show-reachable=yes --malloc-fill=AA --free-fill=BB --gen-suppressions=yes 
--max-stackframe=29838321664

Any suggestions?
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to