Valgrind e erros de memória

Valgrind e erros de memória

por Renato de Souza -
Número de respostas: 1

Olá,

Ao executar o EP2 usando valgrind, em algumas máquinas da Rede Linux não apareceu erro algum. Porém, em outras, apareceram várias  erros como (mudando o size e o endereço no final):

==11177== Invalid write of size 4
==11177== at 0xA5C1B3F: ??? (in /usr/lib/dri/fglrx_dri.so)
==11177== by 0xA517835: ??? (in /usr/lib/dri/fglrx_dri.so)
==11177== Address 0xb73260f0 is not stack'd, malloc'd or (recently) free'd

e ao terminar de executar o programa:

==11177== ERROR SUMMARY: 6816752 errors from 111 contexts (suppressed: 61 from 14) surpreso

O programa é compilado e executado normalmente, sem erros ou seg. fault. Queria saber o que são esses erros e por que ocorrem em algumas máquinas e em outras não.

 

Em resposta à Renato de Souza

Re: Valgrind e erros de memória

por José Coelho de Pina -

Na página

http://valgrind.org/docs/manual/quick-start.html#quick-start.intro

tem uma introdução de como ler essas coisas.
Nessa página ainda há uma sugestõe para que as mensagens indiquem melhor onde ocorreu o problema:

Compile your program with -g to include debugging information so that Memcheck's error messages include exact line numbers. Using -O0 is also a good idea, if you can tolerate the slowdown. With -O1 line numbers in error messages can be inaccurate, although generally speaking running Memcheck on code compiled at -O1 works fairly well, and the speed improvement compared to running -O0 is quite significant. Use of -O2 and above is not recommended as Memcheck occasionally reports uninitialised-value errors which don't really exist.