|
From: Nicholas N. <nj...@ca...> - 2004-08-05 10:31:35
|
On Thu, 5 Aug 2004, Tom Hughes wrote: >> Linux(debug)# /usr/local/bin/valgrind -v --logfile=/var/dpvm_mem >> /isan/bin/dpvm >> Executable is mapped outside of range 0x80cd000-0x7ffff000 >> failed to load /usr/local/lib/valgrind/stage2: Cannot allocate memory > > Have you linked your program with an unusual load address? > > Unfortunately in order to use valgrind your program will need to have > a load address in the range that valgrind reported. Normally linked > programs should fit that criteria though. I don't think that's the problem. The problem is that the stack ends at 0x7fffffff, instead of the normal place 0xbfffffff. So Valgrind thinks that everything above 0x7fffffff is untouchable. Thus, it refuses to load stage2 at 0xb0000000, where it wants to. So the question is: why is the stack at 0x7fffffff? And can Valgrind safely use the memory above there or not? Pankaj, do you know why this would be? Is your system setup so user programs get 2GB of address space, and the kernel gets 2GB? (The most common setup is 3GB user, 1GB kernel.) I'm sorry that you're having so many difficulties, I hope we can work out the problem. N |