Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created April 28, 2018 13:57
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/782a4be73b1d9106e2d1848f882b71ce to your computer and use it in GitHub Desktop.
Save dogbert17/782a4be73b1d9106e2d1848f882b71ce to your computer and use it in GitHub Desktop.
SEGV when profiling code with MVM_SPESH_DISABLE=1
dogbert@dogbert-VirtualBox ~/repos/rakudo $ MVM_SPESH_DISABLE=1 ./perl6-gdb-m --profile -e '(^∞).hyper.grep(*.is-prime)[500].say; say now - ENTER now'
================================================================================================
This is Rakudo Perl 6 running in the GNU debugger, which often allows the user to generate useful back-
traces to debug or report issues in Rakudo, the MoarVM backend or the currently running code.
This Rakudo version is 2018.04.20.g.7847768.ca built on MoarVM version 2018.04.34.g.25.f.165.ad.7,
running on ubuntu (14.04.3.LTS.Trusty.Tahr) / linux (3.19.0.32.generic)
Type `bt full` to generate a backtrace if applicable, type `q` to quit or `help` for help.
------------------------------------------------------------------------------------------------
Reading symbols from /home/dogbert/repos/rakudo/install/bin/moar...done.
Starting program: /home/dogbert/repos/rakudo/install/bin/moar --execname=./perl6-gdb-m --libpath=. --libpath=blib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib /home/dogbert/repos/rakudo/perl6.moarvm --nqp-lib=blib --profile -e \(\^∞\).hyper.grep\(\*.is-prime\)\[500\].say\;\ say\ now\ -\ ENTER\ now
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb5d1db40 (LWP 5663)]
[New Thread 0xb53ffb40 (LWP 5664)]
[New Thread 0xb43ffb40 (LWP 5665)]
3581
0.374846
Writing profiler output to profile-1524923698.5802877.html
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb43ffb40 (LWP 5665)]
0xb7acd1e3 in MVM_hll_map (tc=0xb4a66c80, obj=0x1, hll=0x86e0068, res_reg=0x8f1c838) at src/core/hll.c:178
178 else if (STABLE(obj)->hll_owner == hll) {
(gdb) bt
#0 0xb7acd1e3 in MVM_hll_map (tc=0xb4a66c80, obj=0x1, hll=0x86e0068, res_reg=0x8f1c838) at src/core/hll.c:178
#1 0xb7aa558d in MVM_interp_run (tc=0xb4a66c80, initial_invoke=0xb7ac9e27 <thread_initial_invoke>, invoke_data=0xb4a60940) at src/core/interp.c:2759
#2 0xb7ac9f6c in start_thread (data=0xb4a60940) at src/core/threads.c:87
#3 0xb77bdf72 in start_thread (arg=0xb43ffb40) at pthread_create.c:312
#4 0xb790743e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129
(gdb) info threads
Id Target Id Frame
* 4 Thread 0xb43ffb40 (LWP 5665) "moar" 0xb7acd1e3 in MVM_hll_map (tc=0xb4a66c80, obj=0x1, hll=0x86e0068, res_reg=0x8f1c838) at src/core/hll.c:178
3 Thread 0xb53ffb40 (LWP 5664) "moar" 0xb7fdccb0 in ?? ()
2 Thread 0xb5d1db40 (LWP 5663) "moar" 0xb7bee113 in mp_init () from //home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so
1 Thread 0xb77a7940 (LWP 5662) "moar" 0xb7a8a243 in __x86.get_pc_thunk.bx () from //home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so
(gdb) p MVM_dump_backtrace(tc)
at <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:do-await)
from <unknown>:1 (./CORE.setting.moarvm:await)
from SETTING::src/core/Rakudo/Internals/HyperPipeline.pm6:95 (./CORE.setting.moarvm:)
from SETTING::src/core/Promise.pm6:247 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm6:849 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from <unknown>:1 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm6:60 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm6:238 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm6:232 (./CORE.setting.moarvm:run-one)
from SETTING::src/core/ThreadPoolScheduler.pm6:270 (./CORE.setting.moarvm:)
from SETTING::src/core/Thread.pm6:54 (./CORE.setting.moarvm:THREAD-ENTRY)
$1 = void
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment