Skip to content

Instantly share code, notes, and snippets.

@MasterDuke17
Last active January 23, 2018 02: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 MasterDuke17/9b8db2fb2a0d618e9ee2b660f76f62a4 to your computer and use it in GitHub Desktop.
Save MasterDuke17/9b8db2fb2a0d618e9ee2b660f76f62a4 to your computer and use it in GitHub Desktop.
$ gdb --args /home/dan/Source/perl6/install/bin/moar --libpath="blib" --libpath="/home/dan/Source/perl6/install/share/nqp/lib" --libpath="/home/dan/Source/perl6/install/share/nqp/lib" perl6.moarvm --nqp-lib=blib --setting=NULL --ll-exception --optimize=3 --target=mbc --stagestats --output=CORE.setting.moarvm gen/moar/CORE.setting
GNU gdb (Ubuntu 8.0.1-0ubuntu1) 8.0.1
Copyright (C) 2017 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-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://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 /home/dan/Source/perl6/install/bin/moar...done.
(gdb) b MVM_exception_throw_adhoc
Function "MVM_exception_throw_adhoc" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (MVM_exception_throw_adhoc) pending.
(gdb) r
Starting program: /home/dan/Source/perl6/install/bin/moar --libpath=blib --libpath=/home/dan/Source/perl6/install/share/nqp/lib --libpath=/home/dan/Source/perl6/install/share/nqp/lib perl6.moarvm --nqp-lib=blib --setting=NULL --ll-exception --optimize=3 --target=mbc --stagestats --output=CORE.setting.moarvm gen/moar/CORE.setting
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff6354700 (LWP 26724)]
Stage start : 0.000
Stage parse :
Thread 1 "moar" hit Breakpoint 1, MVM_exception_throw_adhoc (tc=0x555555758c40, messageFormat=messageFormat@entry=0x7ffff7793a0e "Cannot invoke null object") at src/core/exceptions.c:861
861 void MVM_exception_throw_adhoc(MVMThreadContext *tc, const char *messageFormat, ...) {
(gdb) bt
#0 MVM_exception_throw_adhoc (tc=0x555555758c40, messageFormat=messageFormat@entry=0x7ffff7793a0e "Cannot invoke null object") at src/core/exceptions.c:861
#1 0x00007ffff7692e8d in MVM_frame_find_invokee_multi_ok (tc=0x555555758c40, code=<optimized out>, tweak_cs=<optimized out>, args=<optimized out>, was_multi=<optimized out>) at src/core/frame.c:1713
#2 0x00007ffff767675b in MVM_interp_run (tc=tc@entry=0x555555758c40, initial_invoke=0x0, invoke_data=0x7fffffffd9d8) at src/core/interp.c:982
#3 0x00007ffff7752fa5 in MVM_vm_run_file (instance=0x555555758260, filename=<optimized out>) at src/moar.c:401
#4 0x00005555555554c0 in main (argc=13, argv=0x7fffffffdd68) at src/main.c:256
(gdb)
OP(sp_findmeth): {
/* Obtain object and cache index; see if we get a match. */
MVMObject *obj = GET_REG(cur_op, 2).o;
MVMuint16 idx = GET_UI16(cur_op, 8);
if ((MVMSTable *)tc->cur_frame->effective_spesh_slots[idx] == STABLE(obj)) {
GET_REG(cur_op, 0).o = (MVMObject *)tc->cur_frame->effective_spesh_slots[idx + 1];
cur_op += 10;
}
else {
/* May invoke, so pre-increment op counter */
MVMString *name = MVM_cu_string(tc, cu, GET_UI32(cur_op, 4));
MVMRegister *res = &GET_REG(cur_op, 0);
cur_op += 10;
MVM_6model_find_method_spesh(tc, obj, name, idx, res);
}
goto NEXT;
}
====================================
append label: 18
Cannot handle DEOPT_ONE (ins=sp_decont)
append_ins: <sp_decont>
append invokish control guard
append label: 19
Build tree out of: [sp_findmeth, ]
Starting dump of JIT expression tree
====================================
digraph {
n_0017 [label="TC"];
n_0018 [label="ADDR(0x1b0)"];
n_0018 -> n_0017;
n_0021 [label="LOAD(0x8)"];
n_0021 -> n_0018;
n_0024 [label="ADDR(0x78)"];
n_0024 -> n_0021;
n_0027 [label="LOAD(0x8)"];
n_0027 -> n_0024;
n_0014 [label="CONST(0xf, 0x2)"];
n_0030 [label="IDX(0x8)"];
n_0030 -> n_0027;
n_0030 -> n_0014;
n_0004 [label="LOCAL"];
n_0005 [label="ADDR(0x50)"];
n_0005 -> n_0004;
n_0008 [label="LOAD(0x8)"];
n_0008 -> n_0005;
n_0034 [label="ADDR(0x10)"];
n_0034 -> n_0008;
n_0037 [label="LOAD(0x8)"];
n_0037 -> n_0034;
n_0040 [label="EQ"];
n_0040 -> n_0030;
n_0040 -> n_0037;
n_0000 [label="LOCAL"];
n_0001 [label="ADDR(0x48)"];
n_0001 -> n_0000;
n_0043 [label="TC"];
n_0044 [label="ADDR(0x1b0)"];
n_0044 -> n_0043;
n_0047 [label="LOAD(0x8)"];
n_0047 -> n_0044;
n_0050 [label="ADDR(0x78)"];
n_0050 -> n_0047;
n_0053 [label="LOAD(0x8)"];
n_0053 -> n_0050;
n_0056 [label="CONST(0x1, 0x8)"];
n_0059 [label="ADD"];
n_0059 -> n_0014;
n_0059 -> n_0056;
n_0062 [label="IDX(0x8)"];
n_0062 -> n_0053;
n_0062 -> n_0059;
n_0066 [label="STORE(0x8)"];
n_0066 -> n_0001;
n_0066 -> n_0062;
n_0070 [label="CONST(0x7f86ae3fddc0, 0x8)"];
n_0073 [label="TC"];
n_0074 [label="CARG(0x5)"];
n_0074 -> n_0073;
n_0077 [label="CARG(0x5)"];
n_0077 -> n_0008;
n_0080 [label="CONST(0x7f86ae4725d0, 0x8)"];
n_0083 [label="TC"];
n_0084 [label="CARG(0x5)"];
n_0084 -> n_0083;
n_0087 [label="CU"];
n_0088 [label="CARG(0x5)"];
n_0088 -> n_0087;
n_0011 [label="CONST(0x2a6, 0x4)"];
n_0091 [label="CARG(0x3)"];
n_0091 -> n_0011;
n_0094 [label="ARGLIST"];
n_0094 -> n_0084;
n_0094 -> n_0088;
n_0094 -> n_0091;
n_0099 [label="CALL(0x8)"];
n_0099 -> n_0080;
n_0099 -> n_0094;
n_0103 [label="CARG(0x5)"];
n_0103 -> n_0099;
n_0106 [label="CARG(0x3)"];
n_0106 -> n_0014;
n_0109 [label="CARG(0x5)"];
n_0109 -> n_0001;
n_0112 [label="ARGLIST"];
n_0112 -> n_0074;
n_0112 -> n_0077;
n_0112 -> n_0103;
n_0112 -> n_0106;
n_0112 -> n_0109;
n_0119 [label="CALLV"];
n_0119 -> n_0070;
n_0119 -> n_0112;
n_0122 [label="IFV"];
n_0122 -> n_0040;
n_0122 -> n_0066;
n_0122 -> n_0119;
}
End dump of JIT expression tree
====================================
/home/dan/Source/perl6/install/bin/moar --libpath="blib" --libpath="/home/dan/Source/perl6/install/share/nqp/lib" --libpath="/home/dan/Source/perl6/install/share/nqp/lib" perl6.moarvm --nqp-lib=blib --setting=NULL --ll-exception --optimize=3 --target=mbc --stagestats --output=CORE.setting.moarvm gen/moar/CORE.setting
Stage start : 0.000
Stage parse : Cannot invoke null object
at gen/moar/Metamodel.nqp:1098 (blib/Perl6/Metamodel.moarvm:find_method)
from gen/moar/BOOTSTRAP.nqp:1434 (blib/Perl6/BOOTSTRAP.moarvm:)
from gen/moar/BOOTSTRAP.nqp:1662 (blib/Perl6/BOOTSTRAP.moarvm:)
from gen/moar/Metamodel.nqp:2535 (blib/Perl6/Metamodel.moarvm:specialize_with)
from gen/moar/Metamodel.nqp:2517 (blib/Perl6/Metamodel.moarvm:)
from gen/moar/stage2/NQPCORE.setting:1039 (/home/dan/Source/perl6/install/share/nqp/lib/NQPCORE.setting.moarvm:protect)
from gen/moar/Metamodel.nqp:2499 (blib/Perl6/Metamodel.moarvm:specialize)
from gen/moar/Metamodel.nqp:2716 (blib/Perl6/Metamodel.moarvm:specialize)
from gen/moar/Metamodel.nqp:2282 (blib/Perl6/Metamodel.moarvm:specialize)
from gen/moar/Metamodel.nqp:3071 (blib/Perl6/Metamodel.moarvm:compose)
from gen/moar/Metamodel.nqp:1344 (blib/Perl6/Metamodel.moarvm:generate_mixin)
from gen/moar/Metamodel.nqp:1295 (blib/Perl6/Metamodel.moarvm:mixin)
from gen/moar/Perl6-Actions.nqp:3758 (blib/Perl6/Actions.moarvm:routine_def)
from gen/moar/stage2/QRegex.nqp:1624 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:!cursor_pass)
from src/Perl6/Grammar.nqp:2842 (blib/Perl6/Grammar.moarvm:routine_def)
from <unknown>:1 (blib/Perl6/Grammar.moarvm:routine_declarator:sym<sub>)
from gen/moar/stage2/QRegex.nqp:1721 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (blib/Perl6/Grammar.moarvm:routine_declarator)
from <unknown>:1 (blib/Perl6/Grammar.moarvm:term:sym<routine_declarator>)
from gen/moar/stage2/QRegex.nqp:1721 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:!protoregex)
from src/Perl6/Grammar.nqp:4009 (blib/Perl6/Grammar.moarvm:termish)
from gen/moar/stage2/NQPHLL.nqp:883 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:EXPR)
from src/Perl6/Grammar.nqp:4055 (blib/Perl6/Grammar.moarvm:EXPR)
from src/Perl6/Grammar.nqp:1335 (blib/Perl6/Grammar.moarvm:statement)
from src/Perl6/Grammar.nqp:1267 (blib/Perl6/Grammar.moarvm:statementlist)
from gen/moar/stage2/NQPHLL.nqp:1113 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:LANG)
from src/Perl6/Grammar.nqp:1709 (blib/Perl6/Grammar.moarvm:FOREIGN_LANG)
from src/Perl6/Grammar.nqp:1231 (blib/Perl6/Grammar.moarvm:comp_unit)
from src/Perl6/Grammar.nqp:532 (blib/Perl6/Grammar.moarvm:TOP)
from gen/moar/stage2/QRegex.nqp:2330 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:parse)
from gen/moar/stage2/NQPHLL.nqp:1881 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:parse)
from gen/moar/stage2/NQPHLL.nqp:1797 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:execute_stage)
from gen/moar/stage2/NQPHLL.nqp:1830 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:run)
from gen/moar/stage2/NQPHLL.nqp:1833 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:)
from gen/moar/stage2/NQPHLL.nqp:1819 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:compile)
from gen/moar/stage2/NQPHLL.nqp:1519 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:eval)
from gen/moar/stage2/NQPHLL.nqp:1774 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:evalfiles)
from gen/moar/stage2/NQPHLL.nqp:1699 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
from src/Perl6/Compiler.nqp:42 (blib/Perl6/Compiler.moarvm:command_eval)
from gen/moar/stage2/NQPHLL.nqp:1625 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_line)
from gen/moar/main.nqp:47 (perl6.moarvm:MAIN)
from gen/moar/main.nqp:38 (perl6.moarvm:<mainline>)
from <unknown>:1 (perl6.moarvm:<main>)
from <unknown>:1 (perl6.moarvm:<entry>)
Makefile:498: recipe for target 'CORE.setting.moarvm' failed
make: *** [CORE.setting.moarvm] Error 1
(template: sp_findmeth!
(ifv
(eq (^spesh_slot $3) (^stable $1))
(store $0 (^spesh_slot (add $3 (const 1 int_sz))) ptr_sz)
(callv (^func &MVM_6model_find_method_spesh)
(arglist
(carg (tc) ptr)
(carg $1 ptr)
(carg (^cu_string $2) ptr)
(carg $3 int)
(carg $0 ptr)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment