Hi everybody, I'm new to Valgrind and have some questions about architecture flags. Running the Valgrind memchecker provided by Yocto on an ARMv7 CortexA9 (iMX6) I see the stack trace, except for memory leaks. So I decide to build Valgrind by my own, and everything was right.
Actually, I don't have enough knowledge to understand all the tricks about compiler flags for ARM, but I suppose something is conflicting with this additional Yocto patch http://git.yoctoproject.org/cgit.cgi/poky/tree/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch Can anyone check if this patch is ok for Valgrind or give me some hints ? Here is my test, just for the log Source code #include <stdlib.h> void f(void) { int* x = malloc(10 * sizeof(int)); x[10] = 0; // problem 1: heap block overrun } // problem 2: memory leak -- x not freed int main(void) { f(); return 0; } Running Yocto provided Valgrind valgrind --leak-check=full --keep-stacktraces=alloc-and-free --num-callers=20 --track-origins=yes --leak-resolution=high ./memcheck-example leads to ==3510== Memcheck, a memory error detector ==3510== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==3510== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info ==3510== Command: ./memcheck-example ==3510== ==3510== Invalid write of size 4 ==3510== at 0x8454: f (memcheck-example.c:6) ==3510== by 0x846B: main (memcheck-example.c:11) ==3510== Address 0x497b050 is 0 bytes after a block of size 40 alloc'd ==3510== at 0x48377C4: malloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so) ==3510== ==3510== ==3510== HEAP SUMMARY: ==3510== in use at exit: 40 bytes in 1 blocks ==3510== total heap usage: 1 allocs, 0 frees, 40 bytes allocated ==3510== ==3510== 40 bytes in 1 blocks are definitely lost in loss record 1 of 1 ==3510== at 0x48377C4: malloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so) ==3510== ==3510== LEAK SUMMARY: ==3510== definitely lost: 40 bytes in 1 blocks ==3510== indirectly lost: 0 bytes in 0 blocks ==3510== possibly lost: 0 bytes in 0 blocks ==3510== still reachable: 0 bytes in 0 blocks ==3510== suppressed: 0 bytes in 0 blocks so without stack trace for mem leak Regards David ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users