-
-
Save MasterDuke17/554414c59b87fdee869d26e9926bdca6 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
[dan@alexandria perl6]$ gdb --args ./install/bin/raku -e 'my %h = a => 42, b => 666; my $b; $b := %h<a>:exists for ^10_000_000;' | |
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) b MVM_6model_try_cache_type_check | |
Function "MVM_6model_try_cache_type_check" not defined. | |
Make breakpoint pending on future shared library load? (y or [n]) y | |
Breakpoint 1 (MVM_6model_try_cache_type_check) pending. | |
(gdb) r | |
Starting program: /home/dan/Source/perl6/install/bin/raku -e my\ %h\ =\ a\ =\>\ 42,\ b\ =\>\ 666\;\ my\ \$b\;\ \$b\ :=\ %h\<a\>:exists\ for\ \^10_000_000\; | |
[Thread debugging using libthread_db enabled] | |
Using host libthread_db library "/usr/lib/libthread_db.so.1". | |
[New Thread 0x7ffff6de3640 (LWP 1030274)] | |
[Switching to Thread 0x7ffff6de3640 (LWP 1030274)] | |
Thread 2 "spesh optimizer" hit Breakpoint 1, MVM_6model_try_cache_type_check (tc=tc@entry=0x5555555f49f0, obj=0x55555754f508, type=0x55555754f358, result=result@entry=0x7ffff6de26fc) at src/6model/reprs/MVMNull.h:11 | |
11 return !check || check == tc->instance->VMNull; | |
(gdb) continue | |
Continuing. | |
Thread 2 "spesh optimizer" hit Breakpoint 1, MVM_6model_try_cache_type_check (tc=tc@entry=0x5555555f49f0, obj=0x55555754f220, type=0x55555754f220, result=result@entry=0x7ffff6de26fc) at src/6model/reprs/MVMNull.h:11 | |
11 return !check || check == tc->instance->VMNull; | |
(gdb) | |
Continuing. | |
Thread 2 "spesh optimizer" hit Breakpoint 1, MVM_6model_try_cache_type_check (tc=tc@entry=0x5555555f49f0, obj=0x55555754f2c8, type=0x55555754f370, result=result@entry=0x7ffff6de26fc) at src/6model/reprs/MVMNull.h:11 | |
11 return !check || check == tc->instance->VMNull; | |
(gdb) | |
Continuing. | |
Thread 2 "spesh optimizer" hit Breakpoint 1, MVM_6model_try_cache_type_check (tc=tc@entry=0x5555555f49f0, obj=0x55555754f538, type=0x55555754f538, result=result@entry=0x7ffff6de26fc) at src/6model/reprs/MVMNull.h:11 | |
11 return !check || check == tc->instance->VMNull; | |
(gdb) p STABLE(type)->debug_name | |
$1 = 0x55555756df60 "Str" | |
(gdb) continue | |
Continuing. | |
Thread 2 "spesh optimizer" hit Breakpoint 1, MVM_6model_try_cache_type_check (tc=tc@entry=0x5555555f49f0, obj=0x55555754f2c8, type=0x55555754f1c0, result=result@entry=0x7ffff6de26fc) at src/6model/reprs/MVMNull.h:11 | |
11 return !check || check == tc->instance->VMNull; | |
(gdb) p STABLE(type)->debug_name | |
$2 = 0x55555757fed0 "Any" | |
(gdb) continue | |
Continuing. | |
Thread 2 "spesh optimizer" hit Breakpoint 1, MVM_6model_try_cache_type_check (tc=tc@entry=0x5555555f49f0, obj=0x55555754f538, type=0x55555754f1c0, result=result@entry=0x7ffff6de26fc) at src/6model/reprs/MVMNull.h:11 | |
11 return !check || check == tc->instance->VMNull; | |
(gdb) p STABLE(type)->debug_name | |
$3 = 0x55555757fed0 "Any" | |
(gdb) continue | |
Continuing. | |
Thread 2 "spesh optimizer" hit Breakpoint 1, MVM_6model_try_cache_type_check (tc=tc@entry=0x5555555f49f0, obj=0x55555754f220, type=0x555557626fe8, result=result@entry=0x7ffff6de26fc) at src/6model/reprs/MVMNull.h:11 | |
11 return !check || check == tc->instance->VMNull; | |
(gdb) p STABLE(type)->debug_name | |
$4 = 0x5555576c6440 "Bool(Any)" | |
(gdb) info threads | |
Id Target Id Frame | |
1 Thread 0x7ffff7227740 (LWP 1030267) "raku" MVM_interp_run (tc=0x55555555a0b0, initial_invoke=0x8, initial_invoke@entry=0x7ffff79a0980 <toplevel_initial_invoke>, invoke_data=0x8, | |
invoke_data@entry=0x7ffff79a0980 <toplevel_initial_invoke>, outer_runloop=0x5555555be520, outer_runloop@entry=0x0) at src/core/interp.c:1828 | |
* 2 Thread 0x7ffff6de3640 (LWP 1030274) "spesh optimizer" MVM_6model_try_cache_type_check (tc=tc@entry=0x5555555f49f0, obj=0x55555754f220, type=0x555557626fe8, result=result@entry=0x7ffff6de26fc) at src/6model/reprs/MVMNull.h:11 | |
(gdb) del 1 | |
(gdb) thread 1 | |
[Switching to thread 1 (Thread 0x7ffff7227740 (LWP 1030267))] | |
#0 MVM_interp_run (tc=0x55555555a0b0, initial_invoke=0x8, initial_invoke@entry=0x7ffff79a0980 <toplevel_initial_invoke>, invoke_data=0x8, invoke_data@entry=0x7ffff79a0980 <toplevel_initial_invoke>, outer_runloop=0x5555555be520, | |
outer_runloop@entry=0x0) at src/core/interp.c:1828 | |
1828 GET_REG(cur_op, 0).i64 = MVM_is_null(tc, obj); | |
(gdb) bt | |
#0 MVM_interp_run (tc=0x55555555a0b0, initial_invoke=0x8, initial_invoke@entry=0x7ffff79a0980 <toplevel_initial_invoke>, invoke_data=0x8, invoke_data@entry=0x7ffff79a0980 <toplevel_initial_invoke>, outer_runloop=0x5555555be520, | |
outer_runloop@entry=0x0) at src/core/interp.c:1828 | |
#1 0x00007ffff79a1ae4 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 | |
#2 0x00005555555557c4 in main (argc=<optimized out>, argv=0x7fffffffe388) at src/vm/moar/runner/main.c:472 | |
(gdb) call MVM_dump_backtrace(tc) | |
at SETTING::src/core.c/hash_slice.pm6:21 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.c.setting.moarvm:postcircumfix:<{ }>) | |
from -e:1 (<ephemeral file>:) | |
from -e:1 (<ephemeral file>:<unit>) | |
from -e:1 (<ephemeral file>:<unit-outer>) | |
from gen/moar/stage2/NQPHLL.nqp:1946 (/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 checkarity 2, 2 | |
00001 param_rp_o loc_4_obj, 0 | |
00002 hllize loc_7_obj, loc_4_obj | |
00003 set loc_4_obj, loc_7_obj | |
00004 decont loc_7_obj, loc_4_obj | |
00005 set loc_12_obj, loc_7_obj | |
00006 wval loc_7_obj, 2, 24 | |
00007 istype loc_8_int, loc_12_obj, loc_7_obj | |
00008 assertparamcheck loc_8_int | |
00009 set loc_1_obj, loc_4_obj | |
00010 param_rp_o loc_5_obj, 1 | |
00011 hllize loc_7_obj, loc_5_obj | |
00012 set loc_5_obj, loc_7_obj | |
00013 decont loc_7_obj, loc_5_obj | |
00014 set loc_13_obj, loc_7_obj | |
00015 wval loc_7_obj, 2, 24 | |
00016 istype loc_8_int, loc_13_obj, loc_7_obj | |
00017 assertparamcheck loc_8_int | |
00018 set loc_2_obj, loc_5_obj | |
00019 param_rn_o loc_6_obj, 'exists' | |
00020 hllize loc_7_obj, loc_6_obj | |
00021 set loc_6_obj, loc_7_obj | |
00022 decont loc_7_obj, loc_6_obj | |
00023 set loc_14_obj, loc_7_obj | |
00024 wval loc_7_obj, 0, 6614 | |
00025 istype loc_8_int, loc_14_obj, loc_7_obj | |
00026 -> assertparamcheck loc_8_int | |
00027 decont loc_7_obj, loc_6_obj | |
00028 wval loc_11_obj, 2, 49 | |
00029 istype loc_8_int, loc_7_obj, loc_11_obj | |
00030 if_i loc_8_int, label_1(00041) | |
00031 wval loc_11_obj, 0, 6620 | |
00032 wval loc_7_obj, 0, 6614 | |
00033 decont loc_16_obj, loc_11_obj | |
00034 findmeth loc_15_obj, loc_16_obj, 'coerce' | |
00035 prepargs Callsite_0 | |
00036 arg_o 0, loc_11_obj | |
00037 arg_o 1, loc_7_obj | |
00038 arg_o 2, loc_6_obj | |
00039 invoke_o loc_15_obj, loc_15_obj | |
00040 set loc_6_obj, loc_15_obj | |
label_1: | |
00041 decont loc_15_obj, loc_6_obj | |
00042 set loc_3_obj, loc_15_obj | |
00043 paramnamesused | |
annotation: SETTING::src/core.c/hash_slice.pm6:21 | |
00044 takedispatcher loc_7_obj | |
00045 isnull loc_8_int, loc_7_obj | |
00046 if_i loc_8_int, label_2(00048) | |
00047 bindlex lex_Frame_4999_lex7_obj, loc_7_obj | |
annotation: SETTING::src/core.c/hash_slice.pm6:22 | |
label_2: | |
00048 decont loc_9_obj, loc_1_obj | |
00049 findmeth loc_7_obj, loc_9_obj, 'EXISTS-KEY' | |
00050 prepargs Callsite_1 | |
00051 arg_o 0, loc_1_obj | |
00052 arg_o 1, loc_2_obj | |
00053 invoke_o loc_7_obj, loc_7_obj | |
00054 hllize loc_7_obj, loc_7_obj | |
00055 set loc_0_obj, loc_7_obj | |
annotation: SETTING::src/core.c/hash_slice.pm6:23 | |
00056 decont loc_11_obj, loc_3_obj | |
00057 unless_o loc_11_obj, label_3(00060) | |
00058 set loc_9_obj, loc_0_obj | |
00059 goto label_4(00067) | |
label_3: | |
00060 const_s loc_10_str, '&prefix:<!>' | |
00061 getlexstatic_o loc_7_obj, loc_10_str | |
00062 decont loc_7_obj, loc_7_obj | |
00063 prepargs Callsite_2 | |
00064 arg_o 0, loc_0_obj | |
00065 invoke_o loc_7_obj, loc_7_obj | |
00066 set loc_9_obj, loc_7_obj | |
label_4: | |
00067 return_o loc_9_obj | |
(gdb) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment