Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created December 8, 2016 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dogbert17/034403915825b39206d38ed5ea54efd6 to your computer and use it in GitHub Desktop.
Save dogbert17/034403915825b39206d38ed5ea54efd6 to your computer and use it in GitHub Desktop.
dogbert@dogbert-VirtualBox ~/repos/rakudo $ ./perl6-valgrind-m ~/test.pl6
================================================================================================
This is Rakudo Perl 6 running in valgrind, a tool for debugging and profiling programs.
Running a program in valgrind usually takes *a lot* more time than running it directly,
so please be patient.
This Rakudo version is 2016.11.161.g.08.ccbbbd.7 built on MoarVM version 2016.11.41.gd.2139.b.52,
running on ubuntu (14.04.3.LTS.Trusty.Tahr) / linux (3.19.0.32.generic)
------------------------------------------------------------------------------------------------
==15968== Memcheck, a memory error detector
==15968== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==15968== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==15968== Command: /home/dogbert/repos/rakudo/install/bin/moar --full-cleanup --execname=./perl6-valgrind-m --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=. /home/dogbert/repos/rakudo/perl6.moarvm --nqp-lib=blib /home/dogbert/test.pl6
==15968==
==15968== Invalid write of size 4
==15968== at 0x403087D: memset (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x40EC981: allocate_frame (frame.c:218)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4a70 is 0 bytes after a block of size 131,072 alloc'd
==15968== at 0x402A17C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x40F1D76: MVM_malloc (alloc.h:2)
==15968== by 0x40F1DC8: create_region (callstack.c:6)
==15968== by 0x40F1E3A: MVM_callstack_region_next (callstack.c:24)
==15968== by 0x40EC948: allocate_frame (frame.c:215)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968==
==15968== Invalid write of size 4
==15968== at 0x40ECA55: allocate_frame (frame.c:236)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4a74 is 4 bytes after a block of size 131,072 alloc'd
==15968== at 0x402A17C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x40F1D76: MVM_malloc (alloc.h:2)
==15968== by 0x40F1DC8: create_region (callstack.c:6)
==15968== by 0x40F1E3A: MVM_callstack_region_next (callstack.c:24)
==15968== by 0x40EC948: allocate_frame (frame.c:215)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968==
==15968== Invalid read of size 4
==15968== at 0x40ECA6E: allocate_frame (frame.c:237)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4a74 is 4 bytes after a block of size 131,072 alloc'd
==15968== at 0x402A17C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x40F1D76: MVM_malloc (alloc.h:2)
==15968== by 0x40F1DC8: create_region (callstack.c:6)
==15968== by 0x40F1E3A: MVM_callstack_region_next (callstack.c:24)
==15968== by 0x40EC948: allocate_frame (frame.c:215)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968==
==15968== Invalid write of size 2
==15968== at 0x40ECA89: allocate_frame (frame.c:240)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4aea is 6 bytes before a block of size 12 free'd
==15968== at 0x402B3D8: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x415B486: MVM_free (alloc.h:29)
==15968== by 0x415B798: late_bound_find_method_return (6model.c:67)
==15968== by 0x40EE12D: remove_one_frame (frame.c:842)
==15968== by 0x40EE3A2: MVM_frame_try_return (frame.c:906)
==15968== by 0x40C4274: MVM_interp_run (interp.c:462)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968==
==15968== Invalid read of size 4
==15968== at 0x40ECA93: allocate_frame (frame.c:243)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4a74 is 4 bytes after a block of size 131,072 alloc'd
==15968== at 0x402A17C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x40F1D76: MVM_malloc (alloc.h:2)
==15968== by 0x40F1DC8: create_region (callstack.c:6)
==15968== by 0x40F1E3A: MVM_callstack_region_next (callstack.c:24)
==15968== by 0x40EC948: allocate_frame (frame.c:215)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968==
==15968== Invalid write of size 4
==15968== at 0x40ECAB9: allocate_frame (frame.c:243)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4a78 is 8 bytes after a block of size 131,072 alloc'd
==15968== at 0x402A17C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x40F1D76: MVM_malloc (alloc.h:2)
==15968== by 0x40F1DC8: create_region (callstack.c:6)
==15968== by 0x40F1E3A: MVM_callstack_region_next (callstack.c:24)
==15968== by 0x40EC948: allocate_frame (frame.c:215)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968==
==15968== Invalid write of size 4
==15968== at 0x40ECAD4: allocate_frame (frame.c:249)
==15968== by 0x40ED848: MVM_frame_invoke (frame.c:556)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4af4 is 4 bytes inside a block of size 12 free'd
==15968== at 0x402B3D8: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x415B486: MVM_free (alloc.h:29)
==15968== by 0x415B798: late_bound_find_method_return (6model.c:67)
==15968== by 0x40EE12D: remove_one_frame (frame.c:842)
==15968== by 0x40EE3A2: MVM_frame_try_return (frame.c:906)
==15968== by 0x40C4274: MVM_interp_run (interp.c:462)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968==
==15968== Invalid write of size 4
==15968== at 0x40ED87C: MVM_frame_invoke (frame.c:563)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4aa8 is 8 bytes inside a block of size 32 free'd
==15968== at 0x402B3D8: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x412E4A6: MVM_free (alloc.h:29)
==15968== by 0x412E91F: gc_free (MVMArray.c:81)
==15968== by 0x41131E9: MVM_gc_collect_free_nursery_uncopied (collect.c:580)
==15968== by 0x410DC62: run_gc (orchestrate.c:342)
==15968== by 0x410E000: MVM_gc_enter_from_allocator (orchestrate.c:452)
==15968== by 0x410E31D: MVM_gc_allocate_nursery (allocation.c:32)
==15968== by 0x410E232: MVM_gc_allocate (allocation.h:13)
==15968== by 0x410E381: MVM_gc_allocate_zeroed (allocation.c:49)
==15968== by 0x410E52B: MVM_gc_allocate_object (allocation.c:86)
==15968== by 0x413514F: allocate (P6opaque.c:60)
==15968== by 0x4128C2E: MVM_repr_alloc_init (reprconv.c:13)
==15968==
==15968== Invalid write of size 4
==15968== at 0x40ED88B: MVM_frame_invoke (frame.c:564)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
==15968== Address 0x99a4aac is 12 bytes inside a block of size 32 free'd
==15968== at 0x402B3D8: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15968== by 0x412E4A6: MVM_free (alloc.h:29)
==15968== by 0x412E91F: gc_free (MVMArray.c:81)
==15968== by 0x41131E9: MVM_gc_collect_free_nursery_uncopied (collect.c:580)
==15968== by 0x410DC62: run_gc (orchestrate.c:342)
==15968== by 0x410E000: MVM_gc_enter_from_allocator (orchestrate.c:452)
==15968== by 0x410E31D: MVM_gc_allocate_nursery (allocation.c:32)
==15968== by 0x410E232: MVM_gc_allocate (allocation.h:13)
==15968== by 0x410E381: MVM_gc_allocate_zeroed (allocation.c:49)
==15968== by 0x410E52B: MVM_gc_allocate_object (allocation.c:86)
==15968== by 0x413514F: allocate (P6opaque.c:60)
==15968== by 0x4128C2E: MVM_repr_alloc_init (reprconv.c:13)
==15968==
valgrind: m_mallocfree.c:304 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
valgrind: Heap block lo/hi size mismatch: lo = 131120, hi = 0.
This is probably caused by your program erroneously writing past the
end of a heap block and corrupting heap metadata. If you fix any
invalid writes reported by Memcheck, this assertion failure will
probably go away. Please try that before reporting this as a bug.
host stacktrace:
==15968== at 0x3805A504: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x3805A656: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x3805A7B9: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x38068EF2: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x380533A6: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x380502DF: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x38051CD7: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x38056101: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x38050F4D: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x380002C3: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x38032ED0: ??? (in /usr/lib/valgrind/memcheck-x86-linux)
==15968== by 0x62D721CB: ???
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable
==15968== at 0x40ED8A3: MVM_frame_invoke (frame.c:571)
==15968== by 0x413AF2F: invoke_handler (MVMCode.c:10)
==15968== by 0x40C7C25: MVM_interp_run (interp.c:925)
==15968== by 0x41BCD75: MVM_vm_run_file (moar.c:309)
==15968== by 0x8048EA5: main (main.c:192)
Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.
If that doesn't help, please report this bug to: www.valgrind.org
In the bug report, send all the above text, the valgrind
version, and what OS and version you are using. Thanks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment