How deep do you want to go and what tools do you have available?
One option to track down malloc bugs is to use valgrind --tool=memcheck. But it will greatly help to have a proper debug build with symbols and the sources unpacked, too. In which case you could instead try the sanitizers that come with modern compiler toolchains. Perl should properly build and run with either ASAN or TSAN (address or thread sanitizer). For example.
$ export ASAN_OPTIONS=detect_leaks=0 # ignore exit leaks
$ cd perl-5.24.1
$ ./Configure -des -Dprefix=/tmp/TEST -Dusethreads -DDEBUGGING \
-Dcc='clang -fPIE -fsanitize=address -fno-optimize-sibling-calls -fno-omit-frame-pointer'
$ make -j5 && make install
$ PATH="/tmp/TEST/bin:$PATH"
... # build and install modules
The sanitizers have significant run-time memory and cpu overheads. More about them at
github.