Skip to content

Instantly share code, notes, and snippets.

@timo
Created December 28, 2018 19:18
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 timo/fea5d736aa6e95d7c75016286a07675c to your computer and use it in GitHub Desktop.
Save timo/fea5d736aa6e95d7c75016286a07675c to your computer and use it in GitHub Desktop.
gdb session for an exception in Red
timo@schmand ~/p/moarvm (master)> gdb -p 16034 (which moar)
GNU gdb (GDB) Fedora 8.1.1-3.fc28
Copyright (C) 2018 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-redhat-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/timo/perl6/install/bin/moar...done.
Attaching to program: /home/timo/perl6/install/bin/moar, process 16034
[New LWP 16036]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
serialize_object (obj=0x7fbf86e38050, writer=0xb84e1b0, tc=0x13a6ca0)
at src/6model/serialization.c:1235
1235 while (1) { }
warning: File "/home/timo/perl6/moarvm/tools/moar-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load:/usr/lib/golang/src/runtime/runtime-gdb.py".
To enable execution of this file add
add-auto-load-safe-path /home/timo/perl6/moarvm/tools/moar-gdb.py
line to your configuration file "/home/timo/.gdbinit".
To completely disable this security protection add
set auto-load safe-path /
line to your configuration file "/home/timo/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual. E.g., run from the shell:
info "(gdb)Auto-loading safe path"
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.27-35.fc28.x86_64
(gdb) list
1230 if (REPR(obj)->serialize)
1231 REPR(obj)->serialize(tc, STABLE(obj), OBJECT_BODY(obj), writer);
1232 else
1233 {
1234 fprintf(stderr, "b0rked PID: %ld", MVM_proc_getpid(tc));
1235 while (1) { }
1236 MVM_exception_throw_adhoc(tc,
1237 "Missing serialize REPR function for REPR %s (%s)", REPR(obj)->name, MVM_6model_get_debug_name(tc, obj));
1238 }
1239 }
(gdb) print obj
$1 = (MVMObject *) 0x7fbf86e38050
(gdb) print (MVMEx
MVMException MVMException_this_repr MVMExtOpRegistry
MVMExceptionBody MVMExtOpFactDiscover MVMExtOpSpesh
MVMException_initialize MVMExtOpFunc MVMExtRegistry
MVMException_initialize@plt MVMExtOpRecord
(gdb) print (MVMException *)obj
$2 = (MVMException *) 0x7fbf86e38050
(gdb) print ((MVMException *)obj)[0]
$3 = {common = {header = {sc_forward_u = {forwarder = 0x3b800000016, sc = {sc_idx = 22, idx = 952},
st = 0x3b800000016}, owner = 1, flags = 8192, size = 80}, st = 0x140ff20}, body = {
message = 0x0, payload = 0x7fbf86e34778, category = 1, return_after_unwind = 0 '\000',
origin = 0x7fbf86e380a0, throw_address = 0x7fbf854f5a3c "\b", resume_addr = 0x7fbf854f5a3c "\b",
jit_resume_label = 0x0}}
(gdb) print ((MVMException *)obj)[0].body.payload
$4 = (MVMObject *) 0x7fbf86e34778
(gdb) print STABLE(((MVMException *)obj)[0].body.payload)
$5 = (MVMSTable *) 0x27ed070
(gdb) print STABLE(((MVMException *)obj)[0].body.payload)[0]
$6 = {header = {sc_forward_u = {forwarder = 0xffffffff00000017, sc = {sc_idx = 23,
idx = 4294967295}, st = 0xffffffff00000017}, owner = 1, flags = 18, size = 200},
REPR = 0x7fbf88866dc0 <P6opaque_this_repr>, REPR_data = 0x2af0e40, size = 56,
type_check_cache_length = 4, mode_flags = 4, type_check_cache = 0x2af0d60,
method_cache = 0xc17dc80, type_cache_id = 648192, container_spec = 0x0, container_data = 0x0,
boolification_spec = 0x2af0d90, hll_owner = 0x2369fa0, hll_role = 0,
invoke = 0x7fbf881d4aa0 <MVM_6model_invoke_default>, invocation_spec = 0x2af0db0,
WHAT = 0x27fd710, WHO = 0x2abef98, HOW = 0x0, paramet = {ric = {parameterizer = 0x0,
lookup = 0x0}, erized = {parametric_type = 0x0, parameters = 0x0}}, HOW_sc = 0x3e86510,
HOW_idx = 76553, method_cache_offset = 618661, method_cache_sc = 0x0,
debug_name = 0x2af0e20 "X::NoSuchSymbol", being_repossessed = 0 '\000'}
(gdb) print ((MVMException *)obj)[0].body.origin)[0
Junk after end of expression.
(gdb) print ((MVMException *)obj)[0].body.origin)
Junk after end of expression.
(gdb) print ((MVMException *)obj)[0].body.origin
$7 = (MVMFrame *) 0x7fbf86e380a0
(gdb) print (((MVMException *)obj)[0].body.origin)[0]
$8 = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0}, owner = 1,
flags = 4, size = 184}, env = 0x3eddcf0, work = 0x0, args = 0x15e4bb8,
cur_args_callsite = 0x7fbf88871c80 <inv_arg_callsite>, outer = 0x4037670, caller = 0x7fbf86e38158,
static_info = 0x2086da0, code_ref = 0x22fc9e0, params = {
callsite = 0x7fbf88871c60 <two_args_callsite>, arg_flags = 0x0, args = 0x13bb348, named_used = {
byte_array = 0x0, bit_field = 0}, named_used_size = 0, arg_count = 2, num_pos = 2,
flag_count = 3}, effective_spesh_slots = 0x0, spesh_cand = 0x0,
return_address = 0x7fbf854f59e8 "\226\001\r", return_value = 0x13a6e78, return_type = 1 '\001',
flags = 0 '\000', allocd_work = 304, allocd_env = 32, spesh_correlation_id = 0,
sequence_nr = 821013, jit_entry_label = 0x7fbf88ab14bf, extra = 0x0}
(gdb) print (((MVMException *)obj)[0].body.origin)[0].body
There is no member named body.
(gdb) print (((MVMException *)obj)[0].body.origin)[0].static_info
$9 = (MVMStaticFrame *) 0x2086da0
(gdb) print (((MVMException *)obj)[0].body.origin)[0].static_info[0]
$10 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 232}, st = 0x140ffe8}, body = {bytecode = 0x7fbf854f5864 "\214",
cu = 0x1433bd0, local_types = 0x3eb4020, lexical_types = 0x3eb4050, lexical_names = 0x3eb40a0,
lexical_names_list = 0x3eb4070, static_env = 0x3eb41c0, static_env_flags = 0x3eb41f0 "",
has_state_vars = 0 '\000', allocate_on_heap = 0 '\000', no_inline = 0 '\000',
specializable = 1 '\001', instrumentation_level = 1, spesh = 0x3e95090, env_size = 32,
work_size = 304, num_lexicals = 4, num_annotations = 7, work_initial = 0x3eb4210,
bytecode_size = 532, num_locals = 17, handlers = 0x3eb41a0, num_handlers = 1,
fully_deserialized = 1 '\001', is_thunk = 0 '\000', has_exit_handler = 0 '\000',
cuuid = 0x208d140, name = 0x1f77070, outer = 0x20858c8, static_code = 0x22fc9e0,
annotations_data = 0x7fbf857574a0 "\300", orig_bytecode = 0x7fbf854f5864 "\214",
frame_data_pos = 0x7fbf84b832a2 "\034 5", frame_static_lex_pos = 0x7fbf84b83322 "\003",
code_obj_sc_dep_idx = 1, code_obj_sc_idx = 34634, instrumentation = 0x0}}
(gdb) print (((MVMException *)obj)[0].body.origin)[0].static_info[0].body.static_code
$11 = (MVMCode *) 0x22fc9e0
(gdb) print (((MVMException *)obj)[0].body.origin)[0].static_info[0].body.static_code[0]
$12 = {common = {header = {sc_forward_u = {forwarder = 0xffffffff00000017, sc = {sc_idx = 23,
idx = 4294967295}, st = 0xffffffff00000017}, owner = 1, flags = 16, size = 72},
st = 0x140f9a8}, body = {sf = 0x2086da0, outer = 0x4037670, code_object = 0x0, name = 0x1f77070,
state_vars = 0x0, is_static = 1, is_compiler_stub = 0}}
(gdb) print (((MVMException *)obj)[0].body.origin)[0].static_info[0].body.static_code[0].name
There is no member named name.
(gdb) print (((MVMException *)obj)[0].body.origin)[0].static_info[0].body.static_code[0].body.name
$13 = (MVMString *) 0x1f77070
(gdb) print (((MVMException *)obj)[0].body.origin)[0].static_info[0].body.static_code[0].body.name[0]
$14 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x1f87b40,
blob_ascii = 0x1f87b40 "throw", blob_8 = 0x1f87b40 "throw", strands = 0x1f87b40,
any = 0x1f87b40}, storage_type = 2, num_strands = 0, num_graphs = 5,
cached_hash_code = 5359735516278109269}}
(gdb) print (((MVMException *)obj)[0].body.origin)[0]
$15 = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0}, owner = 1,
flags = 4, size = 184}, env = 0x3eddcf0, work = 0x0, args = 0x15e4bb8,
cur_args_callsite = 0x7fbf88871c80 <inv_arg_callsite>, outer = 0x4037670, caller = 0x7fbf86e38158,
static_info = 0x2086da0, code_ref = 0x22fc9e0, params = {
callsite = 0x7fbf88871c60 <two_args_callsite>, arg_flags = 0x0, args = 0x13bb348, named_used = {
byte_array = 0x0, bit_field = 0}, named_used_size = 0, arg_count = 2, num_pos = 2,
flag_count = 3}, effective_spesh_slots = 0x0, spesh_cand = 0x0,
return_address = 0x7fbf854f59e8 "\226\001\r", return_value = 0x13a6e78, return_type = 1 '\001',
flags = 0 '\000', allocd_work = 304, allocd_env = 32, spesh_correlation_id = 0,
sequence_nr = 821013, jit_entry_label = 0x7fbf88ab14bf, extra = 0x0}
(gdb) print (((MVMException *)obj)[0].body.origin)[0].parent
There is no member named parent.
(gdb) print (((MVMException *)obj)[0].body.origin)[0].caller
$16 = (MVMFrame *) 0x7fbf86e38158
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller).static_info[0].body.static_code[0].body.name[0]
$17 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x1f87b40,
blob_ascii = 0x1f87b40 "throw", blob_8 = 0x1f87b40 "throw", strands = 0x1f87b40,
any = 0x1f87b40}, storage_type = 2, num_strands = 0, num_graphs = 5,
cached_hash_code = 5359735516278109269}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller).static_info[0].body.static_code[0].body.name[0]
$18 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x1f0b390,
blob_ascii = 0x1f0b390 "sink", blob_8 = 0x1f0b390 "sink", strands = 0x1f0b390,
any = 0x1f0b390}, storage_type = 2, num_strands = 0, num_graphs = 4,
cached_hash_code = 1843822429391094512}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller).static_info[0].body.static_code[0].body.name[0]
$19 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x46e5740,
blob_ascii = 0x46e5740 "\240\374\366\207\277\177",
blob_8 = 0x46e5740 "\240\374\366\207\277\177", strands = 0x46e5740, any = 0x46e5740},
storage_type = 2, num_strands = 0, num_graphs = 0, cached_hash_code = 0}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller).static_info[0].body.static_code[0].body.name[0]
$20 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x46e5740,
blob_ascii = 0x46e5740 "\240\374\366\207\277\177",
blob_8 = 0x46e5740 "\240\374\366\207\277\177", strands = 0x46e5740, any = 0x46e5740},
storage_type = 2, num_strands = 0, num_graphs = 0, cached_hash_code = 0}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.name[0]
$21 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x46e5c20,
blob_ascii = 0x46e5c20 "compose", blob_8 = 0x46e5c20 "compose", strands = 0x46e5c20,
any = 0x46e5c20}, storage_type = 2, num_strands = 0, num_graphs = 7,
cached_hash_code = 8495377741244677746}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body
$22 = {sf = 0xbdef110, outer = 0xbfb0510, code_object = 0x0, name = 0xbdecfb0, state_vars = 0x0,
is_static = 1, is_compiler_stub = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf
$23 = (MVMStaticFrame *) 0xbdef110
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0]
$24 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 232}, st = 0x140ffe8}, body = {bytecode = 0x7fbf8436da54 "\237",
cu = 0x1436388, local_types = 0xba9f180, lexical_types = 0xbc5fcb0, lexical_names = 0xc7dd390,
lexical_names_list = 0xba0beb0, static_env = 0xb883080, static_env_flags = 0xbfe4e90 "",
has_state_vars = 0 '\000', allocate_on_heap = 0 '\000', no_inline = 0 '\000',
specializable = 1 '\001', instrumentation_level = 1, spesh = 0xc03f238, env_size = 64,
work_size = 320, num_lexicals = 8, num_annotations = 19, work_initial = 0xb9e3db0,
bytecode_size = 2746, num_locals = 30, handlers = 0xbc403c0, num_handlers = 4,
fully_deserialized = 1 '\001', is_thunk = 0 '\000', has_exit_handler = 0 '\000',
cuuid = 0xbdecf80, name = 0xbdecfb0, outer = 0xbded980, static_code = 0xbde5620,
annotations_data = 0x7fbf843750fa <incomplete sequence \354>,
orig_bytecode = 0x7fbf8436da54 "\237", frame_data_pos = 0x7fbf84355c58 "J:",
frame_static_lex_pos = 0x7fbf84355d46 "\001", code_obj_sc_dep_idx = 1, code_obj_sc_idx = 199,
instrumentation = 0x0}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body
$25 = {bytecode = 0x7fbf8436da54 "\237", cu = 0x1436388, local_types = 0xba9f180,
lexical_types = 0xbc5fcb0, lexical_names = 0xc7dd390, lexical_names_list = 0xba0beb0,
static_env = 0xb883080, static_env_flags = 0xbfe4e90 "", has_state_vars = 0 '\000',
allocate_on_heap = 0 '\000', no_inline = 0 '\000', specializable = 1 '\001',
instrumentation_level = 1, spesh = 0xc03f238, env_size = 64, work_size = 320, num_lexicals = 8,
num_annotations = 19, work_initial = 0xb9e3db0, bytecode_size = 2746, num_locals = 30,
handlers = 0xbc403c0, num_handlers = 4, fully_deserialized = 1 '\001', is_thunk = 0 '\000',
has_exit_handler = 0 '\000', cuuid = 0xbdecf80, name = 0xbdecfb0, outer = 0xbded980,
static_code = 0xbde5620, annotations_data = 0x7fbf843750fa <incomplete sequence \354>,
orig_bytecode = 0x7fbf8436da54 "\237", frame_data_pos = 0x7fbf84355c58 "J:",
frame_static_lex_pos = 0x7fbf84355d46 "\001", code_obj_sc_dep_idx = 1, code_obj_sc_idx = 199,
instrumentation = 0x0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu
$26 = (MVMCompUnit *) 0x1436388
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0]
$27 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 248}, st = 0x14100b0}, body = {
data_start = 0x7fbf84354a92 "MOARVM\r\n\005", data_size = 149954, num_extops = 1,
max_callsite_size = 10, coderefs = 0x2576370, num_frames = 103, orig_frames = 103,
main_frame = 0xbded4f8, load_frame = 0xbdf3168, deserialize_frame = 0xbdf2f98,
callsites = 0x14a6270, num_callsites = 20, orig_callsites = 20, extops = 0xc8f0b28,
strings = 0xbdff6b0, num_strings = 949, orig_strings = 949, string_heap_fast_table = 0x46e4fb0,
string_heap_fast_table_top = 59, serialized_size = 0, string_heap_start = 0x7fbf8435823a "\006",
string_heap_read_limit = 0x7fbf84379454 "", serialized = 0x0, scs = 0xbdff2b0, num_scs = 22,
deallocate = MVM_DEALLOCATE_UNMAP, scs_to_resolve = 0x3c54840, sc_handle_idxs = 0x46e50b0,
hll_config = 0x2369fa0, hll_name = 0xbe02750, filename = 0xafe0870, handle = 0x0,
inline_tweak_mutex = 0x46e4ef0, deserialize_frame_mutex = 0xbdec1d0, bytecode_version = 5,
invoked = 1 '\001'}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.filename
$28 = (MVMString *) 0xafe0870
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.filename[0]
$29 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0xb61e200,
blob_ascii = 0xb61e200 "pI\377\003", blob_8 = 0xb61e200 "pI\377\003", strands = 0xb61e200,
any = 0xb61e200}, storage_type = 3, num_strands = 9, num_graphs = 128, cached_hash_code = 0}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.filename[0].body.storage.strands
$30 = (MVMStringStrand *) 0xb61e200
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.filename[0].body.storage.strands[0]
$31 = {blob_string = 0x3ff4970, start = 5, end = 39, repetitions = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.filename[0].body.storage.strands[1]
$32 = {blob_string = 0x2a564f0, start = 0, end = 1, repetitions = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.filename[0].body.storage.strands[2]
$33 = {blob_string = 0x3c4d9e0, start = 0, end = 8, repetitions = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.filename[0].body.storage.strands[3]
$34 = {blob_string = 0x2a564f0, start = 0, end = 1, repetitions = 0}
(gdb) call MVM_string_encod
MVM_string_encode MVM_string_encode_to_buf@plt
MVM_string_encode_config MVM_string_encode_to_buf_config
MVM_string_encode_config@plt MVM_string_encode_to_buf_config@plt
MVM_string_encode_to_buf MVM_string_encoding_cname
(gdb) call MVM_string_encod
MVM_string_encode MVM_string_encode_to_buf@plt
MVM_string_encode_config MVM_string_encode_to_buf_config
MVM_string_encode_config@plt MVM_string_encode_to_buf_config@plt
MVM_string_encode_to_buf MVM_string_encoding_cname
(gdb) call MVM_string_utf
MVM_string_utf16_decode MVM_string_utf8_c8_decode@plt
MVM_string_utf16_decode@plt MVM_string_utf8_c8_decodestream
MVM_string_utf16_decode_main MVM_string_utf8_c8_decodestream@plt
MVM_string_utf16_decode_main.isra.7 MVM_string_utf8_c8_encode
MVM_string_utf16_decodestream MVM_string_utf8_c8_encode@plt
MVM_string_utf16_decodestream@plt MVM_string_utf8_c8_encode_C_string
MVM_string_utf16_decodestream_main MVM_string_utf8_c8_encode_C_string@plt
MVM_string_utf16_decodestream_main@plt MVM_string_utf8_c8_encode_substr
MVM_string_utf16_encode MVM_string_utf8_c8_encode_substr.localalias.6
MVM_string_utf16_encode@plt MVM_string_utf8_c8_encode_substr@plt
MVM_string_utf16_encode_substr MVM_string_utf8_decode
MVM_string_utf16_encode_substr@plt MVM_string_utf8_decode@plt
MVM_string_utf16_encode_substr_main MVM_string_utf8_decode_strip_bom
MVM_string_utf16_encode_substr_main@plt MVM_string_utf8_decode_strip_bom@plt
MVM_string_utf16be_decode MVM_string_utf8_decodestream
MVM_string_utf16be_decode@plt MVM_string_utf8_decodestream@plt
MVM_string_utf16be_decodestream MVM_string_utf8_encode
MVM_string_utf16be_decodestream@plt MVM_string_utf8_encode@plt
MVM_string_utf16be_encode_substr MVM_string_utf8_encode_C_string
MVM_string_utf16be_encode_substr@plt MVM_string_utf8_encode_C_string@plt
MVM_string_utf16le_decode MVM_string_utf8_encode_substr
MVM_string_utf16le_decode@plt MVM_string_utf8_encode_substr.localalias.9
MVM_string_utf16le_decodestream MVM_string_utf8_encode_substr@plt
MVM_string_utf16le_decodestream@plt MVM_string_utf8_maybe_encode_C_string
MVM_string_utf16le_encode_substr MVM_string_utf8_maybe_encode_C_string@plt
MVM_string_utf16le_encode_substr@plt MVM_string_utf8_throw_encoding_exception
MVM_string_utf8_c8_decode MVM_string_utf8_throw_encoding_exception@plt
(gdb) call MVM_string_utf
MVM_string_utf16_decode MVM_string_utf8_c8_decode@plt
MVM_string_utf16_decode@plt MVM_string_utf8_c8_decodestream
MVM_string_utf16_decode_main MVM_string_utf8_c8_decodestream@plt
MVM_string_utf16_decode_main.isra.7 MVM_string_utf8_c8_encode
MVM_string_utf16_decodestream MVM_string_utf8_c8_encode@plt
MVM_string_utf16_decodestream@plt MVM_string_utf8_c8_encode_C_string
MVM_string_utf16_decodestream_main MVM_string_utf8_c8_encode_C_string@plt
MVM_string_utf16_decodestream_main@plt MVM_string_utf8_c8_encode_substr
MVM_string_utf16_encode MVM_string_utf8_c8_encode_substr.localalias.6
MVM_string_utf16_encode@plt MVM_string_utf8_c8_encode_substr@plt
MVM_string_utf16_encode_substr MVM_string_utf8_decode
MVM_string_utf16_encode_substr@plt MVM_string_utf8_decode@plt
MVM_string_utf16_encode_substr_main MVM_string_utf8_decode_strip_bom
MVM_string_utf16_encode_substr_main@plt MVM_string_utf8_decode_strip_bom@plt
MVM_string_utf16be_decode MVM_string_utf8_decodestream
MVM_string_utf16be_decode@plt MVM_string_utf8_decodestream@plt
MVM_string_utf16be_decodestream MVM_string_utf8_encode
MVM_string_utf16be_decodestream@plt MVM_string_utf8_encode@plt
MVM_string_utf16be_encode_substr MVM_string_utf8_encode_C_string
MVM_string_utf16be_encode_substr@plt MVM_string_utf8_encode_C_string@plt
MVM_string_utf16le_decode MVM_string_utf8_encode_substr
MVM_string_utf16le_decode@plt MVM_string_utf8_encode_substr.localalias.9
MVM_string_utf16le_decodestream MVM_string_utf8_encode_substr@plt
MVM_string_utf16le_decodestream@plt MVM_string_utf8_maybe_encode_C_string
MVM_string_utf16le_encode_substr MVM_string_utf8_maybe_encode_C_string@plt
MVM_string_utf16le_encode_substr@plt MVM_string_utf8_throw_encoding_exception
MVM_string_utf8_c8_decode MVM_string_utf8_throw_encoding_exception@plt
(gdb) call MVM_string_utf8_encode
MVM_string_utf8_encode MVM_string_utf8_encode_substr
MVM_string_utf8_encode@plt MVM_string_utf8_encode_substr.localalias.9
MVM_string_utf8_encode_C_string MVM_string_utf8_encode_substr@plt
MVM_string_utf8_encode_C_string@plt
(gdb) print MVM_string_utf8_encode_C_string(tc, ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.filename)
$35 = 0x2d531e0 "/home/timo/perl6/ecosystem/Red/lib/.precomp/CE43128101351974707BF65575A9896FBC8FED1B/1B/1B59E7FCD19AECF1CB70B19B29D072489D23DF52"
(gdb) ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body
Undefined command: "". Try "help".
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body
$36 = {data_start = 0x7fbf84354a92 "MOARVM\r\n\005", data_size = 149954, num_extops = 1,
max_callsite_size = 10, coderefs = 0x2576370, num_frames = 103, orig_frames = 103,
main_frame = 0xbded4f8, load_frame = 0xbdf3168, deserialize_frame = 0xbdf2f98,
callsites = 0x14a6270, num_callsites = 20, orig_callsites = 20, extops = 0xc8f0b28,
strings = 0xbdff6b0, num_strings = 949, orig_strings = 949, string_heap_fast_table = 0x46e4fb0,
string_heap_fast_table_top = 59, serialized_size = 0, string_heap_start = 0x7fbf8435823a "\006",
string_heap_read_limit = 0x7fbf84379454 "", serialized = 0x0, scs = 0xbdff2b0, num_scs = 22,
deallocate = MVM_DEALLOCATE_UNMAP, scs_to_resolve = 0x3c54840, sc_handle_idxs = 0x46e50b0,
hll_config = 0x2369fa0, hll_name = 0xbe02750, filename = 0xafe0870, handle = 0x0,
inline_tweak_mutex = 0x46e4ef0, deserialize_frame_mutex = 0xbdec1d0, bytecode_version = 5,
invoked = 1 '\001'}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.hll_name
$37 = (MVMString *) 0xbe02750
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.hll_name[0]
$38 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x46e6c40,
blob_ascii = 0x46e6c40 "perl6", blob_8 = 0x46e6c40 "perl6", strands = 0x46e6c40,
any = 0x46e6c40}, storage_type = 2, num_strands = 0, num_graphs = 5,
cached_hash_code = 4342380933787404572}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings
$39 = (MVMString **) 0xbdff6b0
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[0]
$40 = (MVMString *) 0xbdec650
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[0][0].body
$41 = {storage = {blob_32 = 0x46e55e0, blob_ascii = 0x46e55e0 "101\207\277\177",
blob_8 = 0x46e55e0 "101\207\277\177", strands = 0x46e55e0, any = 0x46e55e0}, storage_type = 2,
num_strands = 0, num_graphs = 3, cached_hash_code = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[1][0].body
$42 = {storage = {blob_32 = 0x46e5600, blob_ascii = 0x46e5600 "<unit-outer>\277\177",
blob_8 = 0x46e5600 "<unit-outer>\277\177", strands = 0x46e5600, any = 0x46e5600},
storage_type = 2, num_strands = 0, num_graphs = 12, cached_hash_code = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[2][0].body
$43 = {storage = {blob_32 = 0xbe04b20,
blob_ascii = 0xbe04b20 "/home/timo/perl6/ecosystem/Red/lib/MetamodelX/Red/Model.pm6 (MetamodelX::Red::Model)",
blob_8 = 0xbe04b20 "/home/timo/perl6/ecosystem/Red/lib/MetamodelX/Red/Model.pm6 (MetamodelX::Red::Model)", strands = 0xbe04b20, any = 0xbe04b20}, storage_type = 2, num_strands = 0, num_graphs = 84,
cached_hash_code = 2003488570839545010}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[3][0].body
$44 = {storage = {blob_32 = 0x46e5620, blob_ascii = 0x46e5620 "100\207\277\177",
blob_8 = 0x46e5620 "100\207\277\177", strands = 0x46e5620, any = 0x46e5620}, storage_type = 2,
num_strands = 0, num_graphs = 3, cached_hash_code = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[4][0].body
$45 = {storage = {blob_32 = 0x46e5640, blob_ascii = 0x46e5640 "<unit>", blob_8 = 0x46e5640 "<unit>",
strands = 0x46e5640, any = 0x46e5640}, storage_type = 2, num_strands = 0, num_graphs = 6,
cached_hash_code = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[5][0].body
$46 = {storage = {blob_32 = 0x46e5660, blob_ascii = 0x46e5660 "96\366\207\277\177",
blob_8 = 0x46e5660 "96\366\207\277\177", strands = 0x46e5660, any = 0x46e5660},
storage_type = 2, num_strands = 0, num_graphs = 2, cached_hash_code = 0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[6][0].body
$47 = {storage = {blob_32 = 0x46e5680, blob_ascii = 0x46e5680 "rs-class\240\374\366\207\277\177",
blob_8 = 0x46e5680 "rs-class\240\374\366\207\277\177", strands = 0x46e5680, any = 0x46e5680},
storage_type = 2, num_strands = 0, num_graphs = 8, cached_hash_code = 16702589414853440801}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.strings[7][0].body
$48 = {storage = {blob_32 = 0xbe1b880, blob_ascii = 0xbe1b880 "$!rs-class\366\207\277\177",
blob_8 = 0xbe1b880 "$!rs-class\366\207\277\177", strands = 0xbe1b880, any = 0xbe1b880},
storage_type = 2, num_strands = 0, num_graphs = 10, cached_hash_code = 15760115836200227349}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0]
$49 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 248}, st = 0x14100b0}, body = {
data_start = 0x7fbf84354a92 "MOARVM\r\n\005", data_size = 149954, num_extops = 1,
max_callsite_size = 10, coderefs = 0x2576370, num_frames = 103, orig_frames = 103,
main_frame = 0xbded4f8, load_frame = 0xbdf3168, deserialize_frame = 0xbdf2f98,
callsites = 0x14a6270, num_callsites = 20, orig_callsites = 20, extops = 0xc8f0b28,
strings = 0xbdff6b0, num_strings = 949, orig_strings = 949, string_heap_fast_table = 0x46e4fb0,
string_heap_fast_table_top = 59, serialized_size = 0, string_heap_start = 0x7fbf8435823a "\006",
string_heap_read_limit = 0x7fbf84379454 "", serialized = 0x0, scs = 0xbdff2b0, num_scs = 22,
deallocate = MVM_DEALLOCATE_UNMAP, scs_to_resolve = 0x3c54840, sc_handle_idxs = 0x46e50b0,
hll_config = 0x2369fa0, hll_name = 0xbe02750, filename = 0xafe0870, handle = 0x0,
inline_tweak_mutex = 0x46e4ef0, deserialize_frame_mutex = 0xbdec1d0, bytecode_version = 5,
invoked = 1 '\001'}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].scs
There is no member named scs.
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs
$50 = (MVMSerializationContext **) 0xbdff2b0
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[0]
$51 = (MVMSerializationContext *) 0xb7ba160
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[0][0]
$52 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 8208, size = 32}, st = 0x140fcc8}, body = 0x46e5140}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[0][0].body
$53 = (MVMSerializationContextBody *) 0x46e5140
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[0][0].body[0]
$54 = {handle = 0xbdec200, description = 0xbe02900, num_objects = 1468, alloc_objects = 1468,
root_objects = 0xbe05130, root_stables = 0xbe07f20, num_stables = 39, alloc_stables = 39,
root_codes = 0xc0b4130, rep_indexes = 0xbddc628, rep_scs = 0xbddc698, owned_objects = 0xbddc6d0,
sc = 0xb7ba160, hash_handle = {tbl = 0x13ab2f8, hh_next = 0x4265468, key = 0xbdec200, keylen = 0,
hashv = 3111469283961844069}, sc_idx = 64, claimed = 1, sr = 0xbe04c00, mutex = 0xbe028d0}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[0][0].body[0].description
$55 = (MVMString *) 0xbe02900
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[0][0].body[0].description[0]
$56 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0xbe04b20,
blob_ascii = 0xbe04b20 "/home/timo/perl6/ecosystem/Red/lib/MetamodelX/Red/Model.pm6 (MetamodelX::Red::Model)",
blob_8 = 0xbe04b20 "/home/timo/perl6/ecosystem/Red/lib/MetamodelX/Red/Model.pm6 (MetamodelX::Red::Model)", strands = 0xbe04b20, any = 0xbe04b20}, storage_type = 2, num_strands = 0,
num_graphs = 84, cached_hash_code = 2003488570839545010}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[1][0].body[0].description[0]
$57 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x23d4750,
blob_ascii = 0x23d4750 "gen/moar/BOOTSTRAP.nqp", blob_8 = 0x23d4750 "gen/moar/BOOTSTRAP.nqp",
strands = 0x23d4750, any = 0x23d4750}, storage_type = 2, num_strands = 0, num_graphs = 22,
cached_hash_code = 3934646779507429574}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[2][0].body[0].description[0]
$58 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0x3f63220,
blob_ascii = 0x3f63220 "/home/timo/perl6/ecosystem/Red/lib/Red/AST.pm6 (Red::AST)",
blob_8 = 0x3f63220 "/home/timo/perl6/ecosystem/Red/lib/Red/AST.pm6 (Red::AST)",
strands = 0x3f63220, any = 0x3f63220}, storage_type = 2, num_strands = 0, num_graphs = 57,
cached_hash_code = 4452300689833851587}}
(gdb) print ((((MVMException *)obj)[0].body.origin)[0].caller.caller.caller.caller.caller).static_info[0].body.static_code[0].body.sf[0].body.cu[0].body.scs[3][0].body[0].description[0]
$59 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0},
owner = 1, flags = 16, size = 48}, st = 0x140f2a0}, body = {storage = {blob_32 = 0xb612910,
blob_ascii = 0xb612910 "/home/timo/perl6/ecosystem/Red/lib/Red/Utils.pm6 (Red::Utils)",
blob_8 = 0xb612910 "/home/timo/perl6/ecosystem/Red/lib/Red/Utils.pm6 (Red::Utils)",
strands = 0xb612910, any = 0xb612910}, storage_type = 2, num_strands = 0, num_graphs = 61,
cached_hash_code = 0}}
(gdb) quit
A debugging session is active.
Inferior 1 [process 16034] will be detached.
Quit anyway? (y or n) y
Detaching from program: /home/timo/perl6/install/bin/moar, process 16034
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment