valgrind-macos
valgrind-macos copied to clipboard
Can't get leak details
On my mac with os version 10.15.7 (19H1323), I could not get details of a leak, only leak summary is available. A minimum example would be
#include <iostream>
int main(){
int * p = (int *) malloc(10);
std::cout << "memory leak in main\n";
return 0;
}
If I compile this with
g++ -std=c++11 -o simple -g simple.cpp
And run
valgrind ./simple
I got
==85050== Memcheck, a memory error detector
==85050== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==85050== Using Valgrind-3.18.0.GIT-lbmacos and LibVEX; rerun with -h for copyright info
==85050== Command: ./simple
==85050==
memory leak in main
==85050==
==85050== HEAP SUMMARY:
==85050== in use at exit: 18,084 bytes in 164 blocks
==85050== total heap usage: 178 allocs, 14 frees, 22,828 bytes allocated
==85050==
==85050== LEAK SUMMARY:
==85050== definitely lost: 10 bytes in 1 blocks
==85050== indirectly lost: 0 bytes in 0 blocks
==85050== possibly lost: 0 bytes in 0 blocks
==85050== still reachable: 4,096 bytes in 1 blocks
==85050== suppressed: 13,978 bytes in 162 blocks
==85050== Rerun with --leak-check=full to see details of leaked memory
==85050==
==85050== For lists of detected and suppressed errors, rerun with: -s
==85050== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
And adding the --leak-check=full
flag does not help. --track-origins=yes
does not help either.
Am I missing something?
Thanks a lot for your work!
Which version of Xcode are you using?
Which version of Xcode are you using?
I am not using Xcode, just plain terminal command line.
Hello, I think I have the same issue. I have installed Valgrind in MacOS Big Sur (11.6.1) and when I run this code in the command line
`#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; }`
I do not get the expected memory leaks, but the following output:
==36229== Memcheck, a memory error detector ==36229== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==36229== Using Valgrind-3.18.0.GIT-lbmacos and LibVEX; rerun with -h for copyright info ==36229== Command: /Users/carmentorres/Documents/Academy/Postdoc/Strructuur2/Memcheck/examples/output2 ==36229== ==36229== Warning: set address range perms: large range [0x7fff20200000, 0x800020000000) (defined) ==36229== Warning: set address range perms: large range [0x7fff20200000, 0x7fff7ffdc000) (defined) ==36229== Warning: set address range perms: large range [0x7fff8e47c000, 0x7fffc0200000) (noaccess) ==36229== Warning: set address range perms: large range [0x7fffc0200000, 0x7fffe30c4000) (defined) ==36229== Warning: set address range perms: large range [0x7fffe30c4000, 0x7fffffe00000) (noaccess) ==36229== ==36229== HEAP SUMMARY: ==36229== in use at exit: 0 bytes in 0 blocks ==36229== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==36229== ==36229== All heap blocks were freed -- no leaks are possible ==36229== ==36229== For lists of detected and suppressed errors, rerun with: -s ==36229== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
I used this command for run it: "valgrind --leak-check=yes myprogram". Please, could you tell me if I'm missing something or is this a bug?
Thank you in advanced, Carmen
@ctrlpz Big Sur is not supported at the moment (#19)
@hellotommmy You are still using Xcode to build your binary (unless you have explicitly replaced it with an actual gcc
which is unlikely and in which case you are still using Xcode for system libraries)
If you run xcodebuild -version
and sw_vers
and give me the result I might be able to help
@ctrlpz Big Sur is not supported at the moment (#19)
@hellotommmy You are still using Xcode to build your binary (unless you have explicitly replaced it with an actual
gcc
which is unlikely and in which case you are still using Xcode for system libraries) If you runxcodebuild -version
andsw_vers
and give me the result I might be able to help
Sorry about that--I didn't know.
Running xcodebuild -version gives me Xcode 12.3 Build version 12C5020f
and sw_vers gives me ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H1323
Thanks you :)
@hellotommmy That's no worries at all, I just wanted to make sure if you weren't using another compiler somehow :)
This is a bit odd, it might just be how we check the Xcode/kernel version but it looks like Xcode 12 should be fine (?)
@hellotommmy That's no worries at all, I just wanted to make sure if you weren't using another compiler somehow :)
This is a bit odd, it might just be how we check the Xcode/kernel version but it looks like Xcode 12 should be fine (?)
Is there a way I could change to a different compiler and hopefully see different results?
If you could get a earlier version of Xcode I think it might work