Hi All,

I am trying to use  valgrind on mips64 (little-endian) target and  running into 
these errors:

/valgrind/bin # ./valgrind
ZZZ1
ZZZ2
--1238-- core    :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- tool    :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- dinfo   :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- (null)  :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- demangle:        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- exectxt :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- errors  :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- ttaux   :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
==1238==
==1238==     Valgrind's memory management: out of memory:
==1238==        newSuperblock's request for 4194304 bytes failed.
==1238==        13697024 bytes have already been allocated.
==1238==     Valgrind cannot continue.  Sorry.
==1238==
==1238==     There are several possible reasons for this.
==1238==     - You have some kind of memory limit in place.  Look at the
==1238==       output of 'ulimit -a'.  Is there a limit on the size of
==1238==       virtual memory or address space?
==1238==     - You have run out of swap space.
==1238==     - Valgrind has a bug.  If you think this is the case or you are
==1238==     not sure, please let us know and we'll try to fix it.
==1238==     Please note that programs can take substantially more memory than
==1238==     normal when running under Valgrind tools, eg. up to twice or
==1238==     more, depending on the tool.  On a 64-bit machine, Valgrind
==1238==     should be able to make use of up 32GB memory.  On a 32-bit
==1238==     machine, Valgrind should be able to use all the memory available
==1238==     to a single process, up to 4GB if that's how you have your
==1238==     kernel configured.  Most 32-bit Linux setups allow a maximum of
==1238==     3GB per process.
==1238==
==1238==     Whatever the reason, Valgrind cannot continue.  Sorry.
/valgrind/bin #

While debugging this error further on the internet, I found a relevant patch 
saying solution to this error:
http://bugsfiles.kde.org/attachment.cgi?id=63489
But this patch is already there in the valgrind releases, I am working on.


The steps that I used for setting up the valgrind are as follows:
I) I downloaded the valgrind source-code and patched it for mips64 by using the 
below commands:
$ svn co -r13228 svn://svn.valgrind.org/valgrind/trunk r13228
$ cd r13228/VEX
$ svn up -r2633
$ patch -p0 < ../../valgrind_mips64_r13228_2633_VEX.diff
$ cd ..
$ patch -p0 < ../valgrind_mips64_r13228_2633.diff

II)For cross-compilation of valgrind for mips64  architecture, I setup the 
environment variables (CC, AS, AR, CPP, LD, CCAS, LD_LIBRARY_PATH) according to 
my cross-compilation mips toolchain and then used these commands
$ ./autogen.sh
$ ./configure  --host=mips64el-linux-gnu --target=mips64el-linux-gnu 
--build=mips64el-linux CFLAGS="-EL -mips64 -mplt -msys32 -mhard-float"
-prefix=/home/valgrind_r13228
$ make
$ make install

III)I copied the valgrind directories bin and lib into my target rootfs inside 
the directory "/valgrind".

IV)On target: Executed these commands:
~ # export VALGRIND_LIB=/valgrind/lib/valgrind
~ # export LD_LIBRARY_PATH=/lib32:/valgrind/lib/valgrind
~ # cd /valgrind/bin
/valgrind/bin # ./valgrind
ZZZ1
ZZZ2
--1238-- core    :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- tool    :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- dinfo   :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- (null)  :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- demangle:        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- exectxt :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- errors  :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
--1238-- ttaux   :        0/       0  max/curr mmap'd, 0/0 unsplit/split sb 
unmmap'd,         0/       0 max/curr,          B
==1238==
==1238==     Valgrind's memory management: out of memory:
==1238==        newSuperblock's request for 4194304 bytes failed.
==1238==        13697024 bytes have already been allocated.
==1238==     Valgrind cannot continue.  Sorry.

Kindly provide me some pointers to debug the issue further. Please let me know 
if I am missing anything in the steps mentioned above.
Thanks in advance.

Regards,
Krishna Dwivedi






===============================================================================
Please refer to http://www.aricent.com/legal/email_disclaimer.html
for important disclosures regarding this electronic communication.
===============================================================================
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to