|
From: Thanh P. <tha...@ya...> - 2005-10-25 13:43:30
|
Hello,
I'm trying to upgrade to valgrind-3.0.1 from 2.4.1,
and I ran into some problem described below. Any help
is greatly appreciated.
Thanks,
Thanh Phung
tha...@ya...
### test code
#include <errno.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int
main()
{
long shm0 =
shmget(IPC_PRIVATE,123,IPC_CREAT|IPC_EXCL|0644);
void* addr0 = shmat(shm0,0,0);
long shm1 =
shmget(IPC_PRIVATE,456,IPC_CREAT|IPC_EXCL|0644);
void* addr1 = shmat(shm1,0,0);
shmdt(addr1);
long shm2 =
shmget(IPC_PRIVATE,789,IPC_CREAT|IPC_EXCL|0644);
void* addr2 = shmat(shm2,0,0);
printf("%p %p %p\n",addr0,addr1,addr2);
shmctl(shm2,IPC_RMID,0);
shmctl(shm1,IPC_RMID,0);
shmctl(shm0,IPC_RMID,0);
return 0;
}
### output w/o valgrind
# a.out
0x112000 0x113000 0x113000
### output w/ valgrind
# valgrind a.out 2>/dev/null
0x1b903000 0x1b904000 0xffffffff
### system, compiler info
# uname -a
Linux neo 2.6.9-1.667 #1 Tue Nov 2 14:41:25 EST 2004
i686
# gcc --version
gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
### strace w/o valgrind
# strace -e trace=shmat,shmctl,shmdt,shmget a.out
shmget(IPC_PRIVATE, 123, IPC_CREAT|IPC_EXCL|0644) =
27099139
shmat(27099139, 0, 0) = 0x649000
shmget(IPC_PRIVATE, 456, IPC_CREAT|IPC_EXCL|0644) =
27131908
shmat(27131908, 0, 0) = 0xef0000
shmdt(0xef0000) = 0
shmget(IPC_PRIVATE, 789, IPC_CREAT|IPC_EXCL|0644) =
27164677
shmat(27164677, 0, 0) = 0xef0000
0x649000 0xef0000 0xef0000
shmctl(27164677, IPC_64|IPC_RMID, 0) = 0
shmctl(27131908, IPC_64|IPC_RMID, 0) = 0
shmctl(27099139, IPC_64|IPC_RMID, 0) = 0
### strace w/ valgrind
# strace -e trace=shmat,shmctl,shmdt,shmget valgrind
a.out 2>&1 | egrep '^(s|[0-9])'
shmget(IPC_PRIVATE, 123, IPC_CREAT|IPC_EXCL|0644) =
27394051
shmctl(27394051, IPC_STAT, 0xb0afee74) = 0
shmat(27394051, 0x1b903000, 0) = 0x1b903000
shmctl(27394051, IPC_STAT, 0xb0afee14) = 0
shmget(IPC_PRIVATE, 456, IPC_CREAT|IPC_EXCL|0644) =
27426820
shmctl(27426820, IPC_STAT, 0xb0afee74) = 0
shmat(27426820, 0x1b904000, 0) = 0x1b904000
shmctl(27426820, IPC_STAT, 0xb0afee14) = 0
shmdt(0x1b904000) = 0
shmget(IPC_PRIVATE, 789, IPC_CREAT|IPC_EXCL|0644) =
27459589
shmctl(27459589, IPC_STAT, 0xb0afee74) = 0
shmat(27459589, 0x1b903000, 0) = -1 EINVAL
(Invalid argument)
shmctl(27459589, IPC_64|IPC_RMID, 0) = 0
shmctl(27426820, IPC_64|IPC_RMID, 0) = 0
shmctl(27394051, IPC_64|IPC_RMID, 0) = 0
0x1b903000 0x1b904000 0xffffffff
__________________________________
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com
|
|
From: Tom H. <to...@co...> - 2005-10-25 13:57:08
|
In message <200...@we...>
Thanh Phung <tha...@ya...> wrote:
> I'm trying to upgrade to valgrind-3.0.1 from 2.4.1,
> and I ran into some problem described below. Any help
> is greatly appreciated.
Try the SVN code - this should be fixed.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|