Skip to content

Instantly share code, notes, and snippets.

@MasterDuke17
Created February 18, 2021 10:59
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 MasterDuke17/1e77c5c77c47802b28143e979c317e69 to your computer and use it in GitHub Desktop.
Save MasterDuke17/1e77c5c77c47802b28143e979c317e69 to your computer and use it in GitHub Desktop.
[dan@alexandria perl6]$ gdb --args ./install/bin/raku --profile -e 'my $r := "a" .. "za"; my @a = $r[^$r.elems]; say now - INIT now'
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./install/bin/raku...
(gdb) r
Starting program: /home/dan/Source/perl6/install/bin/raku --profile -e my\ \$r\ :=\ \"a\"\ ..\ \"za\"\;\ my\ @a\ =\ \$r\[\^\$r.elems\]\;\ say\ now\ -\ INIT\ now
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff6de3640 (LWP 3303315)]
4.8307183
Writing profiler output to profile-1613645513.2690067.html
Thread 1 "raku" received signal SIGSEGV, Segmentation fault.
MVM_spesh_log_decont (tc=0x55555555a0b0, prev_op=0x7ffff64827d8 "\017", value=0x0) at src/spesh/log.c:195
195 entry->kind = MVM_SPESH_LOG_TYPE;
(gdb) bt
#0 MVM_spesh_log_decont (tc=0x55555555a0b0, prev_op=0x7ffff64827d8 "\017", value=0x0) at src/spesh/log.c:195
#1 0x00007ffff78a10bb in MVM_interp_run (tc=0x55555555a0b0, initial_invoke=0x7ffff51cb010, initial_invoke@entry=0x7ffff79a0f00 <toplevel_initial_invoke>, invoke_data=0x7ffff51cb010,
invoke_data@entry=0x7ffff79a0f00 <toplevel_initial_invoke>, outer_runloop=0xba6, outer_runloop@entry=0x0) at src/core/interp.c:3078
#2 0x00007ffff79a2064 in MVM_vm_run_file (instance=instance@entry=0x555555559590, filename=filename@entry=0x555555559520 "/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm") at src/moar.c:504
#3 0x00005555555557c4 in main (argc=<optimized out>, argv=0x7fffffffe348) at src/vm/moar/runner/main.c:472
(gdb) p entry
$1 = (MVMSpeshLogEntry *) 0x55555e647fa0
(gdb) p *entry
$2 = {kind = 0, id = 0, {entry = {sf = 0x0, cs = 0x0}, param = {type = 0x0, flags = 0, arg_idx = 0}, type = {type = 0x0, flags = 0, bytecode_offset = 0}, value = {value = 0x0, bytecode_offset = 0}, invoke = {sf = 0x0, caller_is_outer = 0,
was_multi = 0, bytecode_offset = 0}, osr = {bytecode_offset = 0}, plugin = {bytecode_offset = 0, guard_index = 0}, deopt = {sf = 0x0, spesh_cand = 0x0}}}
(gdb) f 1
#1 0x00007ffff78a10bb in MVM_interp_run (tc=0x55555555a0b0, initial_invoke=0x7ffff51cb010, initial_invoke@entry=0x7ffff79a0f00 <toplevel_initial_invoke>, invoke_data=0x7ffff51cb010,
invoke_data@entry=0x7ffff79a0f00 <toplevel_initial_invoke>, outer_runloop=0xba6, outer_runloop@entry=0x0) at src/core/interp.c:3078
3078 MVM_spesh_log_decont(tc, prev_op, r->o);
(gdb) p r
$3 = (MVMRegister *) 0x55555e5a0d20
(gdb) p *r
$4 = {o = 0x0, s = 0x0, i8 = 0 '\000', u8 = 0 '\000', i16 = 0, u16 = 0, i32 = 0, u32 = 0, i64 = 0, u64 = 0, n32 = 0, n64 = 0}
(gdb) f 0
#0 MVM_spesh_log_decont (tc=0x55555555a0b0, prev_op=0x7ffff64827d8 "\017", value=0x0) at src/spesh/log.c:195
195 entry->kind = MVM_SPESH_LOG_TYPE;
(gdb) call MVM_dump_backtrace(tc)
at gen/moar/stage2/NQPHLL.nqp:253 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:get_remapped_type_id)
from gen/moar/stage2/NQPHLL.nqp:286 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:post_process_call_graph_node)
from gen/moar/stage2/NQPHLL.nqp:303 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:post_process_call_graph_node)
from gen/moar/stage2/NQPHLL.nqp:303 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:post_process_call_graph_node)
from gen/moar/stage2/NQPHLL.nqp:303 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:post_process_call_graph_node)
from gen/moar/stage2/NQPHLL.nqp:303 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:post_process_call_graph_node)
from gen/moar/stage2/NQPHLL.nqp:303 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:post_process_call_graph_node)
from gen/moar/stage2/NQPHLL.nqp:303 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:post_process_call_graph_node)
from gen/moar/stage2/NQPHLL.nqp:303 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:post_process_call_graph_node)
from gen/moar/stage2/NQPHLL.nqp:687 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:dump_instrumented_profile_data)
from gen/moar/stage2/NQPHLL.nqp:187 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:dump_profile_data)
from gen/moar/stage2/NQPHLL.nqp:166 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:run_profiled)
from gen/moar/stage2/NQPHLL.nqp:1938 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:eval)
from gen/moar/stage2/NQPHLL.nqp:2056 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:)
from gen/moar/stage2/NQPHLL.nqp:2055 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
from gen/moar/Compiler.nqp:109 (/home/dan/Source/perl6/install/share/perl6/lib/Perl6/Compiler.moarvm:command_eval)
from gen/moar/stage2/NQPHLL.nqp:2036 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_line)
from gen/moar/rakudo.nqp:127 (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:MAIN)
from gen/moar/rakudo.nqp:1 (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<mainline>)
from <unknown>:1 (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<main>)
from <unknown>:1 (/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<entry>)
(gdb) call MVM_dump_bytecode(tc)
00000 getcode loc_17_obj, Frame_25
00001 takeclosure loc_17_obj, loc_17_obj
00002 getcode loc_12_obj, Frame_24
00003 takeclosure loc_12_obj, loc_12_obj
00004 checkarity 1, 1
00005 param_rp_o loc_0_obj, 0
00006 paramnamesused
00007 const_s loc_2_str, ''
00008 set loc_1_str, loc_2_str
annotation: gen/moar/stage2/NQPHLL.nqp:233
00009 getlex loc_3_obj, lex_Frame_22_lex6_obj
00010 decont loc_4_obj, loc_0_obj
00011 smrt_strify loc_2_str, loc_4_obj
00012 existskey loc_5_int, loc_3_obj, loc_2_str
00013 unless_i loc_5_int, label_3(00027)
annotation: gen/moar/stage2/NQPHLL.nqp:236
00014 getlex loc_3_obj, lex_Frame_22_lex6_obj
00015 decont loc_4_obj, loc_0_obj
00016 smrt_strify loc_2_str, loc_4_obj
00017 atkey_o loc_3_obj, loc_3_obj, loc_2_str
00018 ifnonnull loc_3_obj, label_1(00022)
00019 wval loc_6_obj, 1, 44
00020 set loc_4_obj, loc_6_obj
00021 goto label_2(00023)
label_1:
00022 set loc_4_obj, loc_3_obj
label_2:
00023 decont loc_4_obj, loc_4_obj
00024 smrt_strify loc_2_str, loc_4_obj
00025 set loc_1_str, loc_2_str
00026 goto label_4(00039)
annotation: gen/moar/stage2/NQPHLL.nqp:238
label_3:
00027 getlex loc_7_int, lex_Frame_22_lex5_int
00028 const_i64_16 loc_8_int, 1
00029 add_i loc_8_int, loc_7_int, loc_8_int
00030 bindlex lex_Frame_22_lex5_int, loc_8_int
00031 coerce_is loc_2_str, loc_8_int
00032 set loc_1_str, loc_2_str
00033 getlex loc_4_obj, lex_Frame_22_lex6_obj
00034 decont loc_6_obj, loc_0_obj
00035 smrt_strify loc_2_str, loc_6_obj
00036 hllboxtype_s loc_6_obj
00037 box_s loc_6_obj, loc_1_str, loc_6_obj
00038 bindkey_o loc_4_obj, loc_2_str, loc_6_obj
label_4:
00039 getlex loc_4_obj, lex_Frame_22_lex7_obj
00040 existskey loc_5_int, loc_4_obj, loc_1_str
00041 if_i loc_5_int, label_37(00203)
00042 wval loc_4_obj, 1, 44
00043 set loc_9_obj, loc_4_obj
00044 wval loc_4_obj, 1, 44
00045 set loc_10_obj, loc_4_obj
annotation: gen/moar/stage2/NQPHLL.nqp:243
00046 set loc_11_obj, loc_12_obj
annotation: gen/moar/stage2/NQPHLL.nqp:246
00047 getlex loc_3_obj, lex_Frame_22_lex8_obj
00048 decont loc_14_obj, loc_0_obj
00049 smrt_strify loc_2_str, loc_14_obj
00050 atkey_o loc_3_obj, loc_3_obj, loc_2_str
00051 ifnonnull loc_3_obj, label_5(00055)
00052 wval loc_15_obj, 1, 44
00053 set loc_14_obj, loc_15_obj
00054 goto label_6(00056)
label_5:
00055 set loc_14_obj, loc_3_obj
label_6:
00056 const_i64_16 loc_8_int, 1
00057 atpos_o loc_14_obj, loc_14_obj, loc_8_int
00058 ifnonnull loc_14_obj, label_7(00062)
00059 wval loc_3_obj, 1, 44
00060 set loc_15_obj, loc_3_obj
00061 goto label_8(00063)
label_7:
00062 set loc_15_obj, loc_14_obj
label_8:
00063 const_s loc_2_str, 'type'
00064 atkey_o loc_15_obj, loc_15_obj, loc_2_str
00065 ifnonnull loc_15_obj, label_9(00069)
00066 wval loc_14_obj, 1, 44
00067 set loc_3_obj, loc_14_obj
00068 goto label_10(00070)
label_9:
00069 set loc_3_obj, loc_15_obj
label_10:
00070 set loc_13_obj, loc_3_obj
00071 decont loc_3_obj, loc_13_obj
00072 gethow loc_3_obj, loc_3_obj
00073 decont loc_15_obj, loc_3_obj
00074 findmeth loc_14_obj, loc_15_obj, 'name'
00075 prepargs Callsite_2
00076 arg_o 0, loc_3_obj
00077 arg_o 1, loc_13_obj
00078 invoke_o loc_14_obj, loc_14_obj
00079 -> set loc_9_obj, loc_14_obj
00080 set loc_4_obj, loc_9_obj
00081 goto label_11(00083)
00082 takehandlerresult loc_4_obj
label_11:
00083 decont loc_14_obj, loc_9_obj
00084 if_o loc_14_obj, label_12(00089)
annotation: gen/moar/stage2/NQPHLL.nqp:250
00085 const_s loc_2_str, '<unknown type>'
00086 hllboxtype_s loc_14_obj
00087 box_s loc_14_obj, loc_2_str, loc_14_obj
00088 set loc_9_obj, loc_14_obj
label_12:
00089 set loc_16_obj, loc_17_obj
annotation: gen/moar/stage2/NQPHLL.nqp:253
00090 getlex loc_3_obj, lex_Frame_22_lex8_obj
00091 decont loc_15_obj, loc_0_obj
00092 smrt_strify loc_2_str, loc_15_obj
00093 atkey_o loc_3_obj, loc_3_obj, loc_2_str
00094 ifnonnull loc_3_obj, label_13(00098)
00095 wval loc_20_obj, 1, 44
00096 set loc_15_obj, loc_20_obj
00097 goto label_14(00099)
label_13:
00098 set loc_15_obj, loc_3_obj
label_14:
00099 const_i64_16 loc_8_int, 1
00100 atpos_o loc_15_obj, loc_15_obj, loc_8_int
00101 ifnonnull loc_15_obj, label_15(00105)
00102 wval loc_3_obj, 1, 44
00103 set loc_20_obj, loc_3_obj
00104 goto label_16(00106)
label_15:
00105 set loc_20_obj, loc_15_obj
label_16:
00106 const_s loc_2_str, 'type'
00107 atkey_o loc_20_obj, loc_20_obj, loc_2_str
00108 ifnonnull loc_20_obj, label_17(00112)
00109 wval loc_15_obj, 1, 44
00110 set loc_3_obj, loc_15_obj
00111 goto label_18(00113)
label_17:
00112 set loc_3_obj, loc_20_obj
label_18:
00113 set loc_18_obj, loc_3_obj
00114 getobjsc loc_3_obj, loc_18_obj
00115 set loc_19_obj, loc_3_obj
00116 set loc_3_obj, loc_19_obj
00117 decont loc_15_obj, loc_19_obj
00118 unless_o loc_15_obj, label_19(00124)
annotation: gen/moar/stage2/NQPHLL.nqp:256
00119 scgetdesc loc_2_str, loc_19_obj
00120 hllboxtype_s loc_3_obj
00121 box_s loc_3_obj, loc_2_str, loc_3_obj
00122 set loc_10_obj, loc_3_obj
00123 set loc_3_obj, loc_10_obj
label_19:
00124 set loc_14_obj, loc_3_obj
00125 goto label_20(00127)
00126 takehandlerresult loc_14_obj
label_20:
00127 decont loc_3_obj, loc_10_obj
00128 if_o loc_3_obj, label_21(00133)
annotation: gen/moar/stage2/NQPHLL.nqp:260
00129 const_s loc_2_str, ''
00130 hllboxtype_s loc_3_obj
00131 box_s loc_3_obj, loc_2_str, loc_3_obj
00132 set loc_10_obj, loc_3_obj
label_21:
00133 getlex loc_3_obj, lex_Frame_22_lex8_obj
00134 decont loc_15_obj, loc_0_obj
00135 smrt_strify loc_2_str, loc_15_obj
00136 atkey_o loc_3_obj, loc_3_obj, loc_2_str
00137 ifnonnull loc_3_obj, label_22(00141)
00138 wval loc_20_obj, 1, 44
00139 set loc_15_obj, loc_20_obj
00140 goto label_23(00142)
label_22:
00141 set loc_15_obj, loc_3_obj
label_23:
00142 const_i64_16 loc_8_int, 1
00143 atpos_o loc_15_obj, loc_15_obj, loc_8_int
00144 ifnonnull loc_15_obj, label_24(00148)
00145 wval loc_3_obj, 1, 44
00146 set loc_20_obj, loc_3_obj
00147 goto label_25(00149)
label_24:
00148 set loc_20_obj, loc_15_obj
label_25:
00149 const_s loc_2_str, 'typename'
00150 bindkey_o loc_20_obj, loc_2_str, loc_9_obj
00151 getlex loc_20_obj, lex_Frame_22_lex8_obj
00152 decont loc_3_obj, loc_0_obj
00153 smrt_strify loc_2_str, loc_3_obj
00154 atkey_o loc_20_obj, loc_20_obj, loc_2_str
00155 ifnonnull loc_20_obj, label_26(00159)
00156 wval loc_15_obj, 1, 44
00157 set loc_3_obj, loc_15_obj
00158 goto label_27(00160)
label_26:
00159 set loc_3_obj, loc_20_obj
label_27:
00160 const_i64_16 loc_8_int, 1
00161 atpos_o loc_3_obj, loc_3_obj, loc_8_int
00162 ifnonnull loc_3_obj, label_28(00166)
00163 wval loc_20_obj, 1, 44
00164 set loc_15_obj, loc_20_obj
00165 goto label_29(00167)
label_28:
00166 set loc_15_obj, loc_3_obj
label_29:
00167 const_s loc_2_str, 'scdesc'
00168 bindkey_o loc_15_obj, loc_2_str, loc_10_obj
00169 getlex loc_15_obj, lex_Frame_22_lex7_obj
00170 bindkey_o loc_15_obj, loc_1_str, loc_9_obj
00171 getlex loc_15_obj, lex_Frame_22_lex8_obj
00172 existskey loc_8_int, loc_15_obj, loc_1_str
00173 if_i loc_8_int, label_30(00178)
annotation: gen/moar/stage2/NQPHLL.nqp:266
00174 getlex loc_15_obj, lex_Frame_22_lex8_obj
00175 hlllist loc_20_obj
00176 create loc_20_obj, loc_20_obj
00177 bindkey_o loc_15_obj, loc_1_str, loc_20_obj
label_30:
00178 getlex loc_15_obj, lex_Frame_22_lex8_obj
00179 atkey_o loc_15_obj, loc_15_obj, loc_1_str
00180 ifnonnull loc_15_obj, label_31(00184)
00181 wval loc_21_obj, 1, 44
00182 set loc_3_obj, loc_21_obj
00183 goto label_32(00185)
label_31:
00184 set loc_3_obj, loc_15_obj
label_32:
00185 const_i64_16 loc_8_int, 1
00186 getlex loc_21_obj, lex_Frame_22_lex8_obj
00187 decont loc_15_obj, loc_0_obj
00188 smrt_strify loc_2_str, loc_15_obj
00189 atkey_o loc_21_obj, loc_21_obj, loc_2_str
00190 ifnonnull loc_21_obj, label_33(00194)
00191 wval loc_22_obj, 1, 44
00192 set loc_15_obj, loc_22_obj
00193 goto label_34(00195)
label_33:
00194 set loc_15_obj, loc_21_obj
label_34:
00195 const_i64_16 loc_7_int, 1
00196 atpos_o loc_15_obj, loc_15_obj, loc_7_int
00197 ifnonnull loc_15_obj, label_35(00201)
00198 wval loc_21_obj, 1, 44
00199 set loc_22_obj, loc_21_obj
00200 goto label_36(00202)
label_35:
00201 set loc_22_obj, loc_15_obj
label_36:
00202 bindpos_o loc_3_obj, loc_8_int, loc_22_obj
label_37:
00203 return_s loc_1_str
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment