From: Jeff <wan...@us...> - 2004-11-19 00:17:23
|
Ok, I ran it through valgrind, but I'm not sure which tool I should be using. I just used the memcheck tool. It actually runs when used with valgrind, i.e. it doesn't segfault. But run by itself, the examples segfault. root@habeeb:~/player-1.6/examples/c++# valgrind --tool=memcheck laserobstacleavoid ==21633== Memcheck, a memory error detector for x86-linux. ==21633== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al. ==21633== Using valgrind-2.2.0, a program supervision framework for x86-linux. ==21633== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al. ==21633== For more details, rerun with: -v ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A085: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:62) ==21633== Address 0x52BF9E18 is on thread 1's stack ==21633== ==21633== Invalid write of size 1 ==21633== at 0x804A096: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:63) ==21633== Address 0x52BF9E00 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A099: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:65) ==21633== Address 0x52BF9E14 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A0A0: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:66) ==21633== Address 0x52BF9E30 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A0A2: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:67) ==21633== Address 0x52BF9E04 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A0A9: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:68) ==21633== Address 0x52BF9E08 is on thread 1's stack ==21633== ==21633== Invalid write of size 1 ==21633== at 0x804A0B0: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:69) ==21633== Address 0x52BF9E51 is on thread 1's stack ==21633== ==21633== Invalid write of size 1 ==21633== at 0x804A0B4: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:70) ==21633== Address 0x52BF9E10 is on thread 1's stack ==21633== ==21633== Invalid write of size 1 ==21633== at 0x1BADCEB4: memset (in /lib/libc-2.3.2.so) ==21633== Address 0x52BF9E52 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x1BADCEBB: memset (in /lib/libc-2.3.2.so) ==21633== Address 0x52BF9E54 is on thread 1's stack ==21633== ==21633== Invalid write of size 1 ==21633== at 0x1BADCEC2: memset (in /lib/libc-2.3.2.so) ==21633== Address 0x52BF9F50 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A0CD: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:73) ==21633== Address 0x52BF9F58 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A0D7: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:74) ==21633== Address 0x52BF9F54 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A0E1: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:76) ==21633== Address 0x52BF9F5C is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A0EB: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:77) ==21633== Address 0x52BF9F60 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A0F5: PlayerClient::PlayerClient(char const*, int, int) (playerclient.cc:79) ==21633== Address 0x52BF9E0C is on thread 1's stack ==21633== ==21633== pthread_mutex_unlock: mutex is not locked ==21633== at 0x1B90BD39: pthread_mutex_unlock (vg_libpthread.c:1350) ==21633== ==21633== Invalid write of size 4 ==21633== at 0x804A38F: PlayerClient::Connect(char const*, int) (playerclient.cc:144) ==21633== Address 0x52BF9F58 is on thread 1's stack ==21633== ==21633== Invalid read of size 1 ==21633== at 0x804A566: PlayerClient::Disconnect() (playerclient.cc:219) ==21633== Address 0x52BF9E00 is on thread 1's stack ==21633== ==21633== Invalid read of size 4 ==21633== at 0x804A56B: PlayerClient::Disconnect() (playerclient.cc:221) ==21633== Address 0x52BF9E04 is on thread 1's stack ==21633== ==21633== Invalid read of size 4 ==21633== at 0x804A594: PlayerClient::Disconnect() (playerclient.h:352) ==21633== Address 0x52BF9E14 is on thread 1's stack ==21633== ==21633== Invalid read of size 4 ==21633== at 0x804BE45: player_connect_ip (playercclient.c:159) ==21633== Address 0x52BF9F58 is on thread 1's stack ==21633== ==21633== Invalid read of size 4 ==21633== at 0x804BEAF: player_connect_sockaddr (playercclient.c:186) ==21633== Address 0x52BF9E18 is on thread 1's stack player_connect(): connect() failed: Connection refused WARNING: unable to connect to "localhost" on port 6665 ==21633== ==21633== Invalid read of size 2 ==21633== at 0x804929F: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:64) ==21633== Address 0x52BF9F54 is on thread 1's stack ==21633== ==21633== Invalid write of size 2 ==21633== at 0x80492AA: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:64) ==21633== Address 0x52BF9D6E is on thread 1's stack ==21633== ==21633== Invalid write of size 2 ==21633== at 0x80492B4: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:65) ==21633== Address 0x52BF9D6A is on thread 1's stack ==21633== ==21633== Invalid write of size 2 ==21633== at 0x80492BE: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:66) ==21633== Address 0x52BF9D6C is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x80492C5: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:58) ==21633== Address 0x529F9D40 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x80492CB: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:68) ==21633== Address 0x529F9D44 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x80492CE: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:70) ==21633== Address 0x52BF9DB0 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x80492D8: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:71) ==21633== Address 0x52BF9DB4 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x80492E2: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:72) ==21633== Address 0x52BF9DB8 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x80492EC: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:73) ==21633== Address 0x52BF9DBC is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x80492F6: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:74) ==21633== Address 0x52BF9DC0 is on thread 1's stack ==21633== ==21633== Invalid write of size 4 ==21633== at 0x8049300: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:75) ==21633== Address 0x52BF9DC4 is on thread 1's stack ==21633== ==21633== Invalid write of size 1 ==21633== at 0x804930A: ClientProxy::ClientProxy(PlayerClient*, unsigned short, unsigned short, unsigned char) (clientproxy.cc:76) ==21633== Address 0x529F9D48 is on thread 1's stack ==21633== ==21633== More than 30000 total errors detected. I'm not reporting any more. ==21633== Final error counts will be inaccurate. Go fix your program! ==21633== Rerun with --error-limit=no to disable this cutoff. Note ==21633== that errors may occur in your program without prior warning from ==21633== Valgrind, because errors are no longer being displayed. ==21633== WARNING: tried to get 'w' access to device 0:4:0 but got 'e' access. WARNING: tried to get 'r' access to device 0:6:0 but got 'e' access. can't read from laser ==21633== ==21633== ERROR SUMMARY: 30000 errors from 36 contexts (suppressed: 29 from 1) ==21633== malloc/free: in use at exit: 232 bytes in 4 blocks. ==21633== malloc/free: 47 allocs, 43 frees, 4753 bytes allocated. ==21633== For a detailed leak analysis, rerun with: --leak-check=yes ==21633== For counts of detected errors, rerun with: -v root@habeeb:~/player-1.6/examples/c++# ./laserobstacleavoid Segmentation fault root@habeeb:~/player-1.6/examples/c++# |