It stops at the call to get_memlist and that is just a wrapper for _GetMemoryList.
Perl process continues to run loading one core. Looks like endless loop starting at this line. I changed 4 instances of unsigned to ULONGLONG, then
perl Makefile.PL
gmake
and
perl -Mblib=blib -MWin32::Process::Memory -E "say Win32::Process::Memo
+ry->new({ pid=>6496 })->get_memtotal"
127885312
(6496 being Notepad's PID). Is it reasonable number? And solution? If so, it was just intuition (inspired by this), I'm not any good at XS to write good formal universal solution.