Created
April 8, 2018 17:53
-
-
Save dogbert17/bf57ededfa513a7baf4e6f5f55191bdd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/core/fixedsizealloc.c b/src/core/fixedsizealloc.c | |
index 21f89a4..78a0ff0 100644 | |
--- a/src/core/fixedsizealloc.c | |
+++ b/src/core/fixedsizealloc.c | |
@@ -10,7 +10,7 @@ | |
* behavior. */ | |
/* Turn this on to switch to a mode where we debug by size. */ | |
-#define FSA_SIZE_DEBUG 0 | |
+#define FSA_SIZE_DEBUG 1 | |
#if FSA_SIZE_DEBUG | |
typedef struct { | |
MVMuint64 alloc_size; | |
@@ -231,7 +231,7 @@ void * MVM_fixed_size_realloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, void | |
void * MVM_fixed_size_realloc_at_safepoint(MVMThreadContext *tc, MVMFixedSizeAlloc *al, void * p, size_t old_bytes, size_t new_bytes) { | |
#if FSA_SIZE_DEBUG | |
MVMFixedSizeAllocDebug *dbg = MVM_fixed_size_alloc(tc, al, new_bytes); | |
- memcpy(dbg->memory, (char *)p + sizeof(MVMuint64), new_bytes > old_bytes ? old_bytes : new_bytes); | |
+ memcpy(dbg->memory, (char *)p, new_bytes > old_bytes ? old_bytes : new_bytes); | |
MVM_fixed_size_free_at_safepoint(tc, al, old_bytes, p); | |
dbg->alloc_size = new_bytes; | |
return &(dbg->memory); | |
dogbert@dogbert-VirtualBox ~/repos/rakudo/nqp $ valgrind /home/dogbert/repos/rakudo/install/bin/moar nqp.moarvm t/p5regex/01-p5regex.t | |
==20003== Memcheck, a memory error detector | |
==20003== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. | |
==20003== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info | |
==20003== Command: /home/dogbert/repos/rakudo/install/bin/moar nqp.moarvm t/p5regex/01-p5regex.t | |
==20003== | |
# file: rx_basic | |
ok 1 - basic literal | |
ok 2 - basic multichar literal | |
ok 3 - basic dot | |
ok 4 - basic multidot | |
ok 5 - dot in mid pattern | |
ok 6 - failed literal match | |
ok 7 - failed literal match | |
ok 8 - failed dot match | |
ok 9 - scanning match | |
# done with file rx_basic | |
# file: rx_quantifiers | |
ok 10 - star 2+ | |
ok 11 - star 1 | |
ok 12 - star 0 | |
ok 13 - star 2+ | |
ok 14 - star 1 | |
ok 15 - star 0 | |
ok 16 - plus 2+ | |
ok 17 - plus 1 | |
==20003== Conditional jump or move depends on uninitialised value(s) | |
==20003== at 0x4C324BD: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50340CD: memcpy (string3.h:53) | |
==20003== by 0x50340CD: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:234) | |
==20003== by 0x50866E9: MVM_sc_add_all_scs_entry (sc.c:71) | |
==20003== by 0x5086B0F: MVM_sc_create (sc.c:11) | |
==20003== by 0x50051FC: MVM_interp_run (interp.c:3023) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Conditional jump or move depends on uninitialised value(s) | |
==20003== at 0x4C3277C: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50340CD: memcpy (string3.h:53) | |
==20003== by 0x50340CD: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:234) | |
==20003== by 0x50866E9: MVM_sc_add_all_scs_entry (sc.c:71) | |
==20003== by 0x5086B0F: MVM_sc_create (sc.c:11) | |
==20003== by 0x50051FC: MVM_interp_run (interp.c:3023) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Conditional jump or move depends on uninitialised value(s) | |
==20003== at 0x4C3251E: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50340CD: memcpy (string3.h:53) | |
==20003== by 0x50340CD: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:234) | |
==20003== by 0x50866E9: MVM_sc_add_all_scs_entry (sc.c:71) | |
==20003== by 0x5086B0F: MVM_sc_create (sc.c:11) | |
==20003== by 0x50051FC: MVM_interp_run (interp.c:3023) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Conditional jump or move depends on uninitialised value(s) | |
==20003== at 0x4C3252F: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50340CD: memcpy (string3.h:53) | |
==20003== by 0x50340CD: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:234) | |
==20003== by 0x50866E9: MVM_sc_add_all_scs_entry (sc.c:71) | |
==20003== by 0x5086B0F: MVM_sc_create (sc.c:11) | |
==20003== by 0x50051FC: MVM_interp_run (interp.c:3023) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Conditional jump or move depends on uninitialised value(s) | |
==20003== at 0x4C32545: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50340CD: memcpy (string3.h:53) | |
==20003== by 0x50340CD: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:234) | |
==20003== by 0x50866E9: MVM_sc_add_all_scs_entry (sc.c:71) | |
==20003== by 0x5086B0F: MVM_sc_create (sc.c:11) | |
==20003== by 0x50051FC: MVM_interp_run (interp.c:3023) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Conditional jump or move depends on uninitialised value(s) | |
==20003== at 0x4C32678: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50340CD: memcpy (string3.h:53) | |
==20003== by 0x50340CD: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:234) | |
==20003== by 0x50866E9: MVM_sc_add_all_scs_entry (sc.c:71) | |
==20003== by 0x5086B0F: MVM_sc_create (sc.c:11) | |
==20003== by 0x50051FC: MVM_interp_run (interp.c:3023) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Use of uninitialised value of size 8 | |
==20003== at 0x4C326CB: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50340CD: memcpy (string3.h:53) | |
==20003== by 0x50340CD: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:234) | |
==20003== by 0x50866E9: MVM_sc_add_all_scs_entry (sc.c:71) | |
==20003== by 0x5086B0F: MVM_sc_create (sc.c:11) | |
==20003== by 0x50051FC: MVM_interp_run (interp.c:3023) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Invalid write of size 8 | |
==20003== at 0x4C326CB: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50340CD: memcpy (string3.h:53) | |
==20003== by 0x50340CD: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:234) | |
==20003== by 0x50866E9: MVM_sc_add_all_scs_entry (sc.c:71) | |
==20003== by 0x5086B0F: MVM_sc_create (sc.c:11) | |
==20003== by 0x50051FC: MVM_interp_run (interp.c:3023) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== Address 0x8895d90 is 0 bytes after a block of size 48 alloc'd | |
==20003== at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50AB6B6: MVM_calloc (alloc.h:11) | |
==20003== by 0x50AB6B6: sim_stack_push (stats.c:250) | |
==20003== by 0x50AC0A0: MVM_spesh_stats_update (stats.c:535) | |
==20003== by 0x50AA838: worker (worker.c:16) | |
==20003== by 0x50276E0: thread_initial_invoke (threads.c:59) | |
==20003== by 0x5003A1D: MVM_interp_run (interp.c:93) | |
==20003== by 0x5027765: start_thread (threads.c:87) | |
==20003== by 0x5E756B9: start_thread (pthread_create.c:333) | |
==20003== | |
==20003== Use of uninitialised value of size 8 | |
==20003== at 0x50181DF: MVM_interp_run (interp.c:3035) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Invalid read of size 8 | |
==20003== at 0x50181DF: MVM_interp_run (interp.c:3035) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== Address 0x8888bf0 is 16 bytes before a block of size 32 alloc'd | |
==20003== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x4C2FDEF: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50AB07E: MVM_realloc (alloc.h:20) | |
==20003== by 0x50AB07E: by_type (stats.c:107) | |
==20003== by 0x50ABA74: incorporate_stats (stats.c:301) | |
==20003== by 0x50AC0E5: MVM_spesh_stats_update (stats.c:602) | |
==20003== by 0x50AA838: worker (worker.c:16) | |
==20003== by 0x50276E0: thread_initial_invoke (threads.c:59) | |
==20003== by 0x5003A1D: MVM_interp_run (interp.c:93) | |
==20003== by 0x5027765: start_thread (threads.c:87) | |
==20003== by 0x5E756B9: start_thread (pthread_create.c:333) | |
==20003== | |
==20003== Use of uninitialised value of size 8 | |
==20003== at 0x5004E05: MVM_sc_get_collectable_sc (sc.h:78) | |
==20003== by 0x5004E05: MVM_sc_get_obj_sc (sc.h:83) | |
==20003== by 0x5004E05: MVM_interp_run (interp.c:3117) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== | |
==20003== Invalid read of size 8 | |
==20003== at 0x5004E05: MVM_sc_get_collectable_sc (sc.h:78) | |
==20003== by 0x5004E05: MVM_sc_get_obj_sc (sc.h:83) | |
==20003== by 0x5004E05: MVM_interp_run (interp.c:3117) | |
==20003== by 0x50F8553: MVM_vm_run_file (moar.c:407) | |
==20003== by 0x40121A: main (main.c:299) | |
==20003== Address 0x8888bf0 is 16 bytes before a block of size 32 alloc'd | |
==20003== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x4C2FDEF: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==20003== by 0x50AB07E: MVM_realloc (alloc.h:20) | |
==20003== by 0x50AB07E: by_type (stats.c:107) | |
==20003== by 0x50ABA74: incorporate_stats (stats.c:301) | |
==20003== by 0x50AC0E5: MVM_spesh_stats_update (stats.c:602) | |
==20003== by 0x50AA838: worker (worker.c:16) | |
==20003== by 0x50276E0: thread_initial_invoke (threads.c:59) | |
==20003== by 0x5003A1D: MVM_interp_run (interp.c:93) | |
==20003== by 0x5027765: start_thread (threads.c:87) | |
==20003== by 0x5E756B9: start_thread (pthread_create.c:333) | |
==20003== | |
not ok 18 - plus 0 | |
# ERROR: Object of type NQPRegex in QAST::WVal, but not in SC | |
not ok 19 - plus 2+ | |
MoarVM panic: Spesh arg guard: unimplemented sparse guard case | |
==20003== | |
==20003== HEAP SUMMARY: | |
==20003== in use at exit: 24,601,456 bytes in 75,518 blocks | |
==20003== total heap usage: 296,031 allocs, 220,513 frees, 92,300,717 bytes allocated | |
==20003== | |
==20003== LEAK SUMMARY: | |
==20003== definitely lost: 0 bytes in 0 blocks | |
==20003== indirectly lost: 0 bytes in 0 blocks | |
==20003== possibly lost: 808,000 bytes in 14,413 blocks | |
==20003== still reachable: 23,793,456 bytes in 61,105 blocks | |
==20003== of which reachable via heuristic: | |
==20003== length64 : 512,720 bytes in 7,591 blocks | |
==20003== suppressed: 0 bytes in 0 blocks | |
==20003== Rerun with --leak-check=full to see details of leaked memory | |
==20003== | |
==20003== For counts of detected and suppressed errors, rerun with: -v | |
==20003== Use --track-origins=yes to see where uninitialised values come from | |
==20003== ERROR SUMMARY: 49 errors from 12 contexts (suppressed: 0 from 0) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment