Skip to content

Instantly share code, notes, and snippets.

@niner
Created March 3, 2015 20:13
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 niner/da27e8b68152c04b7936 to your computer and use it in GitHub Desktop.
Save niner/da27e8b68152c04b7936 to your computer and use it in GitHub Desktop.
make_str_result (tc=0x6036b0, type=type@entry=0x1d8b848, ret_type=ret_type@entry=18, cstring=0x7ffff3dfd61c "can") at src/core/nativecall.c:153
153 result = MVM_repr_box_str(tc, type, value);
(gdb) p value
$1 = (MVMString *) 0x7ffff6780f30
(gdb) p ((MVMString *) 0x7ffff6780f30)->body
$2 = {storage = {blob_32 = 0x7bd3000, blob_ascii = 0x7bd3000 "c", blob_8 = 0x7bd3000 "c", strands = 0x7bd3000, any = 0x7bd3000}, storage_type = 0, num_strands = 0, num_graphs = 3, cached_hash_code = 0}
(gdb) watch *0x7bd3000
Hardware watchpoint 2: *0x7bd3000
(gdb) s
MVM_repr_box_str (tc=tc@entry=0x6036b0, type=0x1d8b848, val=val@entry=0x7ffff6780f30) at src/6model/reprconv.c:300
300 MVMObject * MVM_repr_box_str(MVMThreadContext *tc, MVMObject *type, MVMString *val) {
302 MVMROOT(tc, val, {
300 MVMObject * MVM_repr_box_str(MVMThreadContext *tc, MVMObject *type, MVMString *val) {
302 MVMROOT(tc, val, {
MVM_gc_root_temp_push (tc=tc@entry=0x6036b0, obj_ref=obj_ref@entry=0x7fffffffc748) at src/gc/roots.c:124
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
130 if (tc->num_temproots == tc->alloc_temproots) {
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
139 }
MVM_repr_alloc_init (tc=tc@entry=0x6036b0, type=type@entry=0x1d8b848) at src/6model/reprconv.c:12
12 MVMObject * MVM_repr_alloc_init(MVMThreadContext *tc, MVMObject *type) {
13 MVMObject *obj = REPR(type)->allocate(tc, STABLE(type));
allocate (tc=0x6036b0, st=0x1d811d0) at src/6model/reprs/P6opaque.c:92
92 if (st->size)
93 return MVM_gc_allocate_object(tc, st);
MVM_gc_allocate_object (tc=0x6036b0, st=0x1d811d0) at src/gc/allocation.c:83
83 MVMObject * MVM_gc_allocate_object(MVMThreadContext *tc, MVMSTable *st) {
85 MVMROOT(tc, st, {
MVM_gc_root_temp_push (tc=tc@entry=0x6036b0, obj_ref=obj_ref@entry=0x7fffffffc6f8) at src/gc/roots.c:124
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
130 if (tc->num_temproots == tc->alloc_temproots) {
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
139 }
MVM_gc_allocate_zeroed (tc=0x6036b0, size=40) at src/gc/allocation.c:49
49 return MVM_gc_allocate(tc, size);
MVM_gc_allocate_nursery (tc=0x6036b0, size=40) at src/gc/allocation.c:10
10 void * MVM_gc_allocate_nursery(MVMThreadContext *tc, size_t size) {
17 if (tc->gc_status)
21 if (size > 0) {
29 while ((char *)tc->nursery_alloc + size >= (char *)tc->nursery_alloc_limit) {
37 tc->nursery_alloc = (char *)tc->nursery_alloc + size;
44 }
MVM_gc_write_barrier (referenced=<optimized out>, update_root=<optimized out>, tc=<optimized out>) at src/gc/wb.h:8
8 if (((update_root->flags & MVM_CF_SECOND_GEN) && referenced && !(referenced->flags & MVM_CF_SECOND_GEN)))
MVM_gc_allocate_object (tc=0x6036b0, st=0x1d811d0) at src/gc/allocation.c:85
85 MVMROOT(tc, st, {
MVM_gc_write_barrier (referenced=0x1d811d0, update_root=0x7ffff6780f60, tc=0x6036b0) at src/gc/wb.h:8
8 if (((update_root->flags & MVM_CF_SECOND_GEN) && referenced && !(referenced->flags & MVM_CF_SECOND_GEN)))
MVM_gc_root_temp_pop (tc=tc@entry=0x6036b0) at src/gc/roots.c:143
143 if (tc->num_temproots > 0)
144 tc->num_temproots--;
MVM_gc_allocate_object (tc=0x6036b0, st=0x1d811d0) at src/gc/allocation.c:97
97 }
MVM_repr_alloc_init (tc=tc@entry=0x6036b0, type=type@entry=0x1d8b848) at src/6model/reprconv.c:15
15 if (REPR(obj)->initialize) {
13 MVMObject *obj = REPR(type)->allocate(tc, STABLE(type));
15 if (REPR(obj)->initialize) {
16 MVMROOT(tc, obj, {
MVM_gc_root_temp_push (tc=tc@entry=0x6036b0, obj_ref=obj_ref@entry=0x7fffffffc728) at src/gc/roots.c:124
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
130 if (tc->num_temproots == tc->alloc_temproots) {
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
139 }
initialize (tc=0x6036b0, st=0x1d811d0, root=0x7ffff6780f60, data=0x7ffff6780f78) at src/6model/reprs/P6opaque.c:99
99 static void initialize(MVMThreadContext *tc, MVMSTable *st, MVMObject *root, void *data) {
100 MVMP6opaqueREPRData * repr_data = (MVMP6opaqueREPRData *)st->REPR_data;
101 data = MVM_p6opaque_real_data(tc, data);
MVM_p6opaque_real_data (tc=tc@entry=0x6036b0, data=0x7ffff6780f78) at src/6model/reprs/P6opaque.c:16
16 return body->replaced ? body->replaced : data;
17 }
initialize (tc=0x6036b0, st=<optimized out>, root=0x7ffff6780f60, data=0x7ffff6780f30) at src/6model/reprs/P6opaque.c:102
102 if (repr_data) {
104 for (i = 0; repr_data->initialize_slots[i] >= 0; i++) {
113 }
MVM_gc_root_temp_pop (tc=tc@entry=0x6036b0) at src/gc/roots.c:143
143 if (tc->num_temproots > 0)
144 tc->num_temproots--;
MVM_repr_alloc_init (tc=tc@entry=0x6036b0, type=type@entry=0x1d8b848) at src/6model/reprconv.c:22
22 }
MVM_repr_set_str (tc=0x6036b0, obj=0x7ffff6780f60, val=0x7ffff6780f30) at src/6model/reprconv.c:280
280 void MVM_repr_set_str(MVMThreadContext *tc, MVMObject *obj, MVMString *val) {
281 REPR(obj)->box_funcs.set_str(tc, STABLE(obj), obj, OBJECT_BODY(obj), val);
280 void MVM_repr_set_str(MVMThreadContext *tc, MVMObject *obj, MVMString *val) {
281 REPR(obj)->box_funcs.set_str(tc, STABLE(obj), obj, OBJECT_BODY(obj), val);
set_str (tc=0x6036b0, st=0x1d811d0, root=0x7ffff6780f60, data=0x7ffff6780f78, value=0x7ffff6780f30) at src/6model/reprs/P6opaque.c:514
514 static void set_str(MVMThreadContext *tc, MVMSTable *st, MVMObject *root, void *data, MVMString *value) {
515 MVMP6opaqueREPRData *repr_data = (MVMP6opaqueREPRData *)st->REPR_data;
516 data = MVM_p6opaque_real_data(tc, data);
MVM_p6opaque_real_data (tc=tc@entry=0x6036b0, data=0x7ffff6780f78) at src/6model/reprs/P6opaque.c:16
16 return body->replaced ? body->replaced : data;
17 }
set_str (tc=0x6036b0, st=<optimized out>, root=0x7ffff6780f60, data=0x7ffff6780f78, value=0x7ffff6780f30) at src/6model/reprs/P6opaque.c:517
517 if (repr_data->unbox_str_slot >= 0) {
518 MVMSTable *st = repr_data->flattened_stables[repr_data->unbox_str_slot];
519 st->REPR->box_funcs.set_str(tc, st, root, (char *)data + repr_data->attribute_offsets[repr_data->unbox_str_slot], value);
518 MVMSTable *st = repr_data->flattened_stables[repr_data->unbox_str_slot];
519 st->REPR->box_funcs.set_str(tc, st, root, (char *)data + repr_data->attribute_offsets[repr_data->unbox_str_slot], value);
525 }
519 st->REPR->box_funcs.set_str(tc, st, root, (char *)data + repr_data->attribute_offsets[repr_data->unbox_str_slot], value);
525 }
519 st->REPR->box_funcs.set_str(tc, st, root, (char *)data + repr_data->attribute_offsets[repr_data->unbox_str_slot], value);
set_str (tc=0x6036b0, st=0x6075c0, root=0x7ffff6780f60, data=0x7ffff6780f80, value=0x7ffff6780f30) at src/6model/reprs/P6str.c:28
28 MVM_ASSIGN_REF(tc, &(root->header), ((MVMP6strBody *)data)->value, value);
MVM_gc_write_barrier (referenced=0x7ffff6780f30, update_root=0x7ffff6780f60, tc=0x6036b0) at src/gc/wb.h:8
8 if (((update_root->flags & MVM_CF_SECOND_GEN) && referenced && !(referenced->flags & MVM_CF_SECOND_GEN)))
set_str (tc=0x6036b0, st=0x6075c0, root=0x7ffff6780f60, data=0x7ffff6780f80, value=0x7ffff6780f30) at src/6model/reprs/P6str.c:28
28 MVM_ASSIGN_REF(tc, &(root->header), ((MVMP6strBody *)data)->value, value);
MVM_gc_root_temp_pop (tc=tc@entry=0x6036b0) at src/gc/roots.c:143
143 if (tc->num_temproots > 0)
144 tc->num_temproots--;
MVM_repr_box_str (tc=tc@entry=0x6036b0, type=<optimized out>, val=val@entry=0x7ffff6780f30) at src/6model/reprconv.c:307
307 }
make_str_result (tc=0x6036b0, type=type@entry=0x1d8b848, ret_type=ret_type@entry=18, cstring=0x7ffff3dfd61c "can") at src/core/nativecall.c:154
154 if (ret_type & MVM_NATIVECALL_ARG_FREE_STR)
159 }
callback_handler (cb=<optimized out>, cb_args=<optimized out>, cb_result=<optimized out>, data=0x5960c30) at src/core/nativecall.c:468
468 break;
438 for (i = 1; i < data->num_types; i++) {
439 MVMObject *type = data->types[i];
440 MVMint16 typeinfo = data->typeinfos[i];
441 switch (typeinfo & MVM_NATIVECALL_ARG_TYPE_MASK) {
474 args[i - 1].o = MVM_nativecall_make_cpointer(data->tc, type,
MVM_nativecall_make_cpointer (tc=0x6036b0, type=0x7ffff3dd3a70, ptr=0x5960c30) at src/core/nativecall.c:180
180 if (ptr && type) {
178 MVMObject * MVM_nativecall_make_cpointer(MVMThreadContext *tc, MVMObject *type, void *ptr) {
180 if (ptr && type) {
178 MVMObject * MVM_nativecall_make_cpointer(MVMThreadContext *tc, MVMObject *type, void *ptr) {
180 if (ptr && type) {
181 if (REPR(type)->ID != MVM_REPR_ID_MVMCPointer)
184 result = REPR(type)->allocate(tc, STABLE(type));
MVM_gc_allocate_object (tc=0x6036b0, st=0x2cfa848) at src/gc/allocation.c:83
83 MVMObject * MVM_gc_allocate_object(MVMThreadContext *tc, MVMSTable *st) {
85 MVMROOT(tc, st, {
MVM_gc_root_temp_push (tc=tc@entry=0x6036b0, obj_ref=obj_ref@entry=0x7fffffffc778) at src/gc/roots.c:124
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
130 if (tc->num_temproots == tc->alloc_temproots) {
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
139 }
MVM_gc_allocate_zeroed (tc=0x6036b0, size=32) at src/gc/allocation.c:49
49 return MVM_gc_allocate(tc, size);
MVM_gc_allocate_nursery (tc=0x6036b0, size=32) at src/gc/allocation.c:10
10 void * MVM_gc_allocate_nursery(MVMThreadContext *tc, size_t size) {
17 if (tc->gc_status)
21 if (size > 0) {
29 while ((char *)tc->nursery_alloc + size >= (char *)tc->nursery_alloc_limit) {
37 tc->nursery_alloc = (char *)tc->nursery_alloc + size;
44 }
MVM_gc_write_barrier (referenced=<optimized out>, update_root=<optimized out>, tc=<optimized out>) at src/gc/wb.h:8
8 if (((update_root->flags & MVM_CF_SECOND_GEN) && referenced && !(referenced->flags & MVM_CF_SECOND_GEN)))
MVM_gc_allocate_object (tc=0x6036b0, st=0x2cfa848) at src/gc/allocation.c:85
85 MVMROOT(tc, st, {
MVM_gc_write_barrier (referenced=0x2cfa848, update_root=0x7ffff6780f88, tc=0x6036b0) at src/gc/wb.h:8
8 if (((update_root->flags & MVM_CF_SECOND_GEN) && referenced && !(referenced->flags & MVM_CF_SECOND_GEN)))
MVM_gc_root_temp_pop (tc=tc@entry=0x6036b0) at src/gc/roots.c:143
143 if (tc->num_temproots > 0)
144 tc->num_temproots--;
MVM_gc_allocate_object (tc=0x6036b0, st=0x2cfa848) at src/gc/allocation.c:97
97 }
MVM_nativecall_make_cpointer (tc=0x6036b0, type=0x7ffff6780f88, ptr=0x7ffff3dd3a70) at src/core/nativecall.c:185
185 ((MVMCPointer *)result)->body.ptr = ptr;
188 }
callback_handler (cb=<optimized out>, cb_args=<optimized out>, cb_result=<optimized out>, data=0x5960c30) at src/core/nativecall.c:438
438 for (i = 1; i < data->num_types; i++) {
439 MVMObject *type = data->types[i];
440 MVMint16 typeinfo = data->typeinfos[i];
441 switch (typeinfo & MVM_NATIVECALL_ARG_TYPE_MASK) {
474 args[i - 1].o = MVM_nativecall_make_cpointer(data->tc, type,
MVM_nativecall_make_cpointer (tc=0x6036b0, type=0x7fffffffc9f8, ptr=0x5960c30) at src/core/nativecall.c:180
180 if (ptr && type) {
178 MVMObject * MVM_nativecall_make_cpointer(MVMThreadContext *tc, MVMObject *type, void *ptr) {
180 if (ptr && type) {
178 MVMObject * MVM_nativecall_make_cpointer(MVMThreadContext *tc, MVMObject *type, void *ptr) {
180 if (ptr && type) {
181 if (REPR(type)->ID != MVM_REPR_ID_MVMCPointer)
184 result = REPR(type)->allocate(tc, STABLE(type));
MVM_gc_allocate_object (tc=0x6036b0, st=0x2cfa848) at src/gc/allocation.c:83
83 MVMObject * MVM_gc_allocate_object(MVMThreadContext *tc, MVMSTable *st) {
85 MVMROOT(tc, st, {
MVM_gc_root_temp_push (tc=tc@entry=0x6036b0, obj_ref=obj_ref@entry=0x7fffffffc778) at src/gc/roots.c:124
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
124 void MVM_gc_root_temp_push(MVMThreadContext *tc, MVMCollectable **obj_ref) {
126 if (obj_ref == NULL)
130 if (tc->num_temproots == tc->alloc_temproots) {
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
137 tc->temproots[tc->num_temproots] = obj_ref;
138 tc->num_temproots++;
139 }
MVM_gc_allocate_zeroed (tc=0x6036b0, size=32) at src/gc/allocation.c:49
49 return MVM_gc_allocate(tc, size);
MVM_gc_allocate_nursery (tc=0x6036b0, size=32) at src/gc/allocation.c:10
10 void * MVM_gc_allocate_nursery(MVMThreadContext *tc, size_t size) {
17 if (tc->gc_status)
21 if (size > 0) {
29 while ((char *)tc->nursery_alloc + size >= (char *)tc->nursery_alloc_limit) {
37 tc->nursery_alloc = (char *)tc->nursery_alloc + size;
44 }
MVM_gc_write_barrier (referenced=<optimized out>, update_root=<optimized out>, tc=<optimized out>) at src/gc/wb.h:8
8 if (((update_root->flags & MVM_CF_SECOND_GEN) && referenced && !(referenced->flags & MVM_CF_SECOND_GEN)))
MVM_gc_allocate_object (tc=0x6036b0, st=0x2cfa848) at src/gc/allocation.c:85
85 MVMROOT(tc, st, {
MVM_gc_write_barrier (referenced=0x2cfa848, update_root=0x7ffff6780fa8, tc=0x6036b0) at src/gc/wb.h:8
8 if (((update_root->flags & MVM_CF_SECOND_GEN) && referenced && !(referenced->flags & MVM_CF_SECOND_GEN)))
MVM_gc_root_temp_pop (tc=tc@entry=0x6036b0) at src/gc/roots.c:143
143 if (tc->num_temproots > 0)
144 tc->num_temproots--;
MVM_gc_allocate_object (tc=0x6036b0, st=0x2cfa848) at src/gc/allocation.c:97
97 }
MVM_nativecall_make_cpointer (tc=0x6036b0, type=0x7ffff6780fa8, ptr=0x7fffffffc9f8) at src/core/nativecall.c:185
185 ((MVMCPointer *)result)->body.ptr = ptr;
188 }
callback_handler (cb=<optimized out>, cb_args=<optimized out>, cb_result=<optimized out>, data=0x5960c30) at src/core/nativecall.c:438
438 for (i = 1; i < data->num_types; i++) {
495 cid.invokee = data->target;
499 MVMThreadContext *tc = data->tc;
508 memcpy(backup_interp_jump, tc->interp_jump, sizeof(jmp_buf));
510 tc->cur_frame->return_value = &res;
495 cid.invokee = data->target;
496 cid.args = args;
508 memcpy(backup_interp_jump, tc->interp_jump, sizeof(jmp_buf));
500 MVMuint8 **backup_interp_cur_op = tc->interp_cur_op;
501 MVMuint8 **backup_interp_bytecode_start = tc->interp_bytecode_start;
506 MVMuint32 backup_mark = MVM_gc_root_temp_mark(tc);
502 MVMRegister **backup_interp_reg_base = tc->interp_reg_base;
503 MVMCompUnit **backup_interp_cu = tc->interp_cu;
496 cid.args = args;
497 cid.cs = data->cs;
505 MVMFrame *backup_thread_entry_frame = tc->thread_entry_frame;
500 MVMuint8 **backup_interp_cur_op = tc->interp_cur_op;
501 MVMuint8 **backup_interp_bytecode_start = tc->interp_bytecode_start;
502 MVMRegister **backup_interp_reg_base = tc->interp_reg_base;
497 cid.cs = data->cs;
504 MVMFrame *backup_cur_frame = tc->cur_frame;
503 MVMCompUnit **backup_interp_cu = tc->interp_cu;
505 MVMFrame *backup_thread_entry_frame = tc->thread_entry_frame;
504 MVMFrame *backup_cur_frame = tc->cur_frame;
506 MVMuint32 backup_mark = MVM_gc_root_temp_mark(tc);
MVM_gc_root_temp_mark (tc=tc@entry=0x6036b0) at src/gc/roots.c:163
163 tc->mark_temproots = tc->num_temproots;
162 MVMint32 current = tc->mark_temproots;
163 tc->mark_temproots = tc->num_temproots;
165 }
callback_handler (cb=<optimized out>, cb_args=<optimized out>, cb_result=<optimized out>, data=0x5960c30) at src/core/nativecall.c:508
508 memcpy(backup_interp_jump, tc->interp_jump, sizeof(jmp_buf));
512 MVM_interp_run(tc, &callback_invoke, &cid);
506 MVMuint32 backup_mark = MVM_gc_root_temp_mark(tc);
510 tc->cur_frame->return_value = &res;
511 tc->cur_frame->return_type = MVM_RETURN_OBJ;
512 MVM_interp_run(tc, &callback_invoke, &cid);
MVM_interp_run (tc=tc@entry=0x6036b0, initial_invoke=0x0, invoke_data=invoke_data@entry=0x7fffffffc800) at src/core/interp.c:29
29 void MVM_interp_run(MVMThreadContext *tc, void (*initial_invoke)(MVMThreadContext *, void *), void *invoke_data) {
61 initial_invoke(tc, invoke_data);
29 void MVM_interp_run(MVMThreadContext *tc, void (*initial_invoke)(MVMThreadContext *, void *), void *invoke_data) {
53 tc->interp_cur_op = &cur_op;
29 void MVM_interp_run(MVMThreadContext *tc, void (*initial_invoke)(MVMThreadContext *, void *), void *invoke_data) {
35 MVMuint8 *cur_op = NULL;
38 MVMuint8 *bytecode_start = NULL;
42 MVMRegister *reg_base = NULL;
53 tc->interp_cur_op = &cur_op;
54 tc->interp_bytecode_start = &bytecode_start;
45 MVMCompUnit *cu = NULL;
48 MVMCallsite *cur_callsite = NULL;
54 tc->interp_bytecode_start = &bytecode_start;
55 tc->interp_reg_base = &reg_base;
56 tc->interp_cu = &cu;
61 initial_invoke(tc, invoke_data);
callback_invoke (tc=0x6036b0, data=0x7fffffffc800) at src/core/nativecall.c:423
423 static void callback_invoke(MVMThreadContext *tc, void *data) {
426 STABLE(cid->invokee)->invoke(tc, cid->invokee, cid->cs, cid->args);
423 static void callback_invoke(MVMThreadContext *tc, void *data) {
426 STABLE(cid->invokee)->invoke(tc, cid->invokee, cid->cs, cid->args);
invoke_handler (tc=0x6036b0, invokee=0x809e1a0, callsite=0x4bb0980, args=0x5e1c9f0) at src/6model/reprs/MVMCode.c:7
7 static void invoke_handler(MVMThreadContext *tc, MVMObject *invokee, MVMCallsite *callsite, MVMRegister *args) {
8 if (IS_CONCRETE(invokee)) {
7 static void invoke_handler(MVMThreadContext *tc, MVMObject *invokee, MVMCallsite *callsite, MVMRegister *args) {
8 if (IS_CONCRETE(invokee)) {
10 MVM_frame_invoke(tc, code->body.sf, callsite, args, code->body.outer, invokee, -1);
MVM_frame_invoke (tc=0x6036b0, static_frame=0x68733c0, callsite=0x4bb0980, args=0x5e1c9f0, outer=0x7554700, code_ref=0x809e1a0, spesh_cand=spesh_cand@entry=-1) at src/core/frame.c:335
335 MVMFrame *outer, MVMObject *code_ref, MVMint32 spesh_cand) {
339 MVMStaticFrameBody *static_frame_body = &static_frame->body;
335 MVMFrame *outer, MVMObject *code_ref, MVMint32 spesh_cand) {
339 MVMStaticFrameBody *static_frame_body = &static_frame->body;
344 if (static_frame_body->instrumentation_level != tc->instance->instrumentation_level)
335 MVMFrame *outer, MVMObject *code_ref, MVMint32 spesh_cand) {
344 if (static_frame_body->instrumentation_level != tc->instance->instrumentation_level)
349 if (spesh_cand >= 0 && spesh_cand < static_frame_body->num_spesh_candidates) {
361 if (!found_spesh && ++static_frame_body->invocations >= static_frame_body->spesh_threshold && callsite->is_interned) {
363 MVMint32 num_spesh = static_frame_body->num_spesh_candidates;
366 for (i = 0; i < num_spesh; i++) {
363 MVMint32 num_spesh = static_frame_body->num_spesh_candidates;
366 for (i = 0; i < num_spesh; i++) {
389 STABLE(arg)->container_spec->fetch(tc, arg, &dc);
367 MVMSpeshCandidate *cand = &static_frame_body->spesh_candidates[i];
368 if (cand->cs == callsite) {
370 for (j = 0; j < cand->num_guards; j++) {
371 MVMint32 pos = cand->guards[j].slot;
373 MVMObject *arg = args[pos].o;
372 MVMSTable *st = (MVMSTable *)cand->guards[j].match;
373 MVMObject *arg = args[pos].o;
374 if (!arg) {
378 switch (cand->guards[j].kind) {
380 if (!IS_CONCRETE(arg) || STABLE(arg) != st)
384 if (IS_CONCRETE(arg) || STABLE(arg) != st)
370 for (j = 0; j < cand->num_guards; j++) {
371 MVMint32 pos = cand->guards[j].slot;
373 MVMObject *arg = args[pos].o;
372 MVMSTable *st = (MVMSTable *)cand->guards[j].match;
373 MVMObject *arg = args[pos].o;
374 if (!arg) {
378 switch (cand->guards[j].kind) {
380 if (!IS_CONCRETE(arg) || STABLE(arg) != st)
384 if (IS_CONCRETE(arg) || STABLE(arg) != st)
370 for (j = 0; j < cand->num_guards; j++) {
371 MVMint32 pos = cand->guards[j].slot;
373 MVMObject *arg = args[pos].o;
372 MVMSTable *st = (MVMSTable *)cand->guards[j].match;
373 MVMObject *arg = args[pos].o;
374 if (!arg) {
378 switch (cand->guards[j].kind) {
380 if (!IS_CONCRETE(arg) || STABLE(arg) != st)
384 if (IS_CONCRETE(arg) || STABLE(arg) != st)
370 for (j = 0; j < cand->num_guards; j++) {
420 if (chosen_cand) {
421 if (chosen_cand->sg) {
441 frame = allocate_frame(tc, static_frame_body, chosen_cand);
allocate_frame (tc=tc@entry=0x6036b0, static_frame_body=static_frame_body@entry=0x68733d8, spesh_cand=spesh_cand@entry=0x82dce30) at src/core/frame.c:218
218 MVMSpeshCandidate *spesh_cand) {
224 if (!spesh_cand ||
218 MVMSpeshCandidate *spesh_cand) {
224 if (!spesh_cand ||
225 (spesh_cand->num_locals == static_frame_body->num_locals &&
224 if (!spesh_cand ||
281 frame = MVM_fixed_size_alloc(tc, tc->instance->fsa, sizeof(MVMFrame));
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=288) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=288) at src/core/fixedsizealloc.c:34
34 MVMuint32 bin = (MVMuint32)(bytes >> MVM_FSA_BIN_BITS);
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=288) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=288) at src/core/fixedsizealloc.c:36
36 bin--;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=288) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=288) at src/core/fixedsizealloc.c:36
36 bin--;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=288) at src/core/fixedsizealloc.c:109
109 if (bin < MVM_FSA_BINS) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
125 fle = bin_ptr->free_list;
126 if (fle)
127 bin_ptr->free_list = fle->next;
133 return alloc_slow_path(tc, al, bin);
alloc_slow_path (tc=<optimized out>, bin=<optimized out>, al=<optimized out>) at src/core/fixedsizealloc.c:80
80 MVMint32 lock = tc->instance->next_user_thread_id != 2;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=<optimized out>, bytes=bytes@entry=288) at src/core/fixedsizealloc.c:139
139 }
allocate_frame (tc=tc@entry=0x6036b0, static_frame_body=static_frame_body@entry=0x68733d8, spesh_cand=spesh_cand@entry=0x82dce30) at src/core/frame.c:282
282 frame->params.named_used = NULL;
286 frame->special_return = NULL;
287 frame->special_unwind = NULL;
288 frame->continuation_tags = NULL;
289 frame->dynlex_cache_name = NULL;
290 frame->return_address = NULL;
291 frame->jit_entry_label = NULL;
295 env_size = spesh_cand ? spesh_cand->env_size : static_frame_body->env_size;
296 if (env_size) {
297 frame->env = MVM_fixed_size_alloc_zeroed(tc, tc->instance->fsa, env_size);
MVM_fixed_size_alloc_zeroed (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=136) at src/core/fixedsizealloc.c:143
143 void * MVM_fixed_size_alloc_zeroed(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
144 void *allocd = MVM_fixed_size_alloc(tc, al, bytes);
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=136) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=136) at src/core/fixedsizealloc.c:34
34 MVMuint32 bin = (MVMuint32)(bytes >> MVM_FSA_BIN_BITS);
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=136) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=136) at src/core/fixedsizealloc.c:36
36 bin--;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=136) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=136) at src/core/fixedsizealloc.c:36
36 bin--;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=136) at src/core/fixedsizealloc.c:109
109 if (bin < MVM_FSA_BINS) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
125 fle = bin_ptr->free_list;
126 if (fle)
127 bin_ptr->free_list = fle->next;
133 return alloc_slow_path(tc, al, bin);
alloc_slow_path (tc=<optimized out>, bin=<optimized out>, al=<optimized out>) at src/core/fixedsizealloc.c:80
80 MVMint32 lock = tc->instance->next_user_thread_id != 2;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=<optimized out>, bytes=bytes@entry=136) at src/core/fixedsizealloc.c:139
139 }
MVM_fixed_size_alloc_zeroed (tc=tc@entry=0x6036b0, al=<optimized out>, bytes=bytes@entry=136) at src/core/fixedsizealloc.c:145
145 memset(allocd, 0, bytes);
144 void *allocd = MVM_fixed_size_alloc(tc, al, bytes);
145 memset(allocd, 0, bytes);
__memset_sse2 () at ../sysdeps/x86_64/memset.S:53
53 ../sysdeps/x86_64/memset.S: No such file or directory.
54 in ../sysdeps/x86_64/memset.S
55 in ../sysdeps/x86_64/memset.S
56 in ../sysdeps/x86_64/memset.S
57 in ../sysdeps/x86_64/memset.S
59 in ../sysdeps/x86_64/memset.S
60 in ../sysdeps/x86_64/memset.S
77 in ../sysdeps/x86_64/memset.S
78 in ../sysdeps/x86_64/memset.S
79 in ../sysdeps/x86_64/memset.S
80 in ../sysdeps/x86_64/memset.S
81 in ../sysdeps/x86_64/memset.S
82 in ../sysdeps/x86_64/memset.S
83 in ../sysdeps/x86_64/memset.S
84 in ../sysdeps/x86_64/memset.S
85 in ../sysdeps/x86_64/memset.S
86 in ../sysdeps/x86_64/memset.S
87 in ../sysdeps/x86_64/memset.S
88 in ../sysdeps/x86_64/memset.S
89 in ../sysdeps/x86_64/memset.S
90 in ../sysdeps/x86_64/memset.S
91 in ../sysdeps/x86_64/memset.S
92 in ../sysdeps/x86_64/memset.S
93 in ../sysdeps/x86_64/memset.S
96 in ../sysdeps/x86_64/memset.S
97 in ../sysdeps/x86_64/memset.S
98 in ../sysdeps/x86_64/memset.S
99 in ../sysdeps/x86_64/memset.S
100 in ../sysdeps/x86_64/memset.S
101 in ../sysdeps/x86_64/memset.S
102 in ../sysdeps/x86_64/memset.S
103 in ../sysdeps/x86_64/memset.S
MVM_fixed_size_alloc_zeroed (tc=tc@entry=0x6036b0, al=<optimized out>, bytes=bytes@entry=136) at src/core/fixedsizealloc.c:147
147 }
allocate_frame (tc=tc@entry=0x6036b0, static_frame_body=static_frame_body@entry=0x68733d8, spesh_cand=spesh_cand@entry=0x82dce30) at src/core/frame.c:304
304 work_size = spesh_cand ? spesh_cand->work_size : static_frame_body->work_size;
297 frame->env = MVM_fixed_size_alloc_zeroed(tc, tc->instance->fsa, env_size);
298 frame->allocd_env = env_size;
304 work_size = spesh_cand ? spesh_cand->work_size : static_frame_body->work_size;
305 if (work_size) {
306 frame->work = MVM_fixed_size_alloc_zeroed(tc, tc->instance->fsa, work_size);
MVM_fixed_size_alloc_zeroed (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=312) at src/core/fixedsizealloc.c:143
143 void * MVM_fixed_size_alloc_zeroed(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
144 void *allocd = MVM_fixed_size_alloc(tc, al, bytes);
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=312) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=312) at src/core/fixedsizealloc.c:34
34 MVMuint32 bin = (MVMuint32)(bytes >> MVM_FSA_BIN_BITS);
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=312) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=312) at src/core/fixedsizealloc.c:36
36 bin--;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=312) at src/core/fixedsizealloc.c:102
102 void * MVM_fixed_size_alloc(MVMThreadContext *tc, MVMFixedSizeAlloc *al, size_t bytes) {
108 MVMuint32 bin = bin_for(bytes);
bin_for (bytes=bytes@entry=312) at src/core/fixedsizealloc.c:36
36 bin--;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=0x604530, bytes=bytes@entry=312) at src/core/fixedsizealloc.c:109
109 if (bin < MVM_FSA_BINS) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
113 MVMFixedSizeAllocSizeClass *bin_ptr = &(al->size_classes[bin]);
115 if (tc->instance->next_user_thread_id != 2) {
125 fle = bin_ptr->free_list;
126 if (fle)
127 bin_ptr->free_list = fle->next;
133 return alloc_slow_path(tc, al, bin);
alloc_slow_path (tc=<optimized out>, bin=<optimized out>, al=<optimized out>) at src/core/fixedsizealloc.c:80
80 MVMint32 lock = tc->instance->next_user_thread_id != 2;
MVM_fixed_size_alloc (tc=tc@entry=0x6036b0, al=<optimized out>, bytes=bytes@entry=312) at src/core/fixedsizealloc.c:139
139 }
MVM_fixed_size_alloc_zeroed (tc=tc@entry=0x6036b0, al=<optimized out>, bytes=bytes@entry=312) at src/core/fixedsizealloc.c:145
145 memset(allocd, 0, bytes);
144 void *allocd = MVM_fixed_size_alloc(tc, al, bytes);
145 memset(allocd, 0, bytes);
__memset_sse2 () at ../sysdeps/x86_64/memset.S:53
53 ../sysdeps/x86_64/memset.S: No such file or directory.
54 in ../sysdeps/x86_64/memset.S
55 in ../sysdeps/x86_64/memset.S
56 in ../sysdeps/x86_64/memset.S
57 in ../sysdeps/x86_64/memset.S
59 in ../sysdeps/x86_64/memset.S
60 in ../sysdeps/x86_64/memset.S
77 in ../sysdeps/x86_64/memset.S
78 in ../sysdeps/x86_64/memset.S
79 in ../sysdeps/x86_64/memset.S
80 in ../sysdeps/x86_64/memset.S
81 in ../sysdeps/x86_64/memset.S
82 in ../sysdeps/x86_64/memset.S
83 in ../sysdeps/x86_64/memset.S
84 in ../sysdeps/x86_64/memset.S
85 in ../sysdeps/x86_64/memset.S
86 in ../sysdeps/x86_64/memset.S
87 in ../sysdeps/x86_64/memset.S
88 in ../sysdeps/x86_64/memset.S
89 in ../sysdeps/x86_64/memset.S
90 in ../sysdeps/x86_64/memset.S
91 in ../sysdeps/x86_64/memset.S
92 in ../sysdeps/x86_64/memset.S
93 in ../sysdeps/x86_64/memset.S
96 in ../sysdeps/x86_64/memset.S
97 in ../sysdeps/x86_64/memset.S
98 in ../sysdeps/x86_64/memset.S
99 in ../sysdeps/x86_64/memset.S
100 in ../sysdeps/x86_64/memset.S
101 in ../sysdeps/x86_64/memset.S
102 in ../sysdeps/x86_64/memset.S
96 in ../sysdeps/x86_64/memset.S
97 in ../sysdeps/x86_64/memset.S
98 in ../sysdeps/x86_64/memset.S
99 in ../sysdeps/x86_64/memset.S
100 in ../sysdeps/x86_64/memset.S
101 in ../sysdeps/x86_64/memset.S
102 in ../sysdeps/x86_64/memset.S
96 in ../sysdeps/x86_64/memset.S
97 in ../sysdeps/x86_64/memset.S
98 in ../sysdeps/x86_64/memset.S
99 in ../sysdeps/x86_64/memset.S
100 in ../sysdeps/x86_64/memset.S
101 in ../sysdeps/x86_64/memset.S
102 in ../sysdeps/x86_64/memset.S
96 in ../sysdeps/x86_64/memset.S
97 in ../sysdeps/x86_64/memset.S
98 in ../sysdeps/x86_64/memset.S
99 in ../sysdeps/x86_64/memset.S
100 in ../sysdeps/x86_64/memset.S
101 in ../sysdeps/x86_64/memset.S
102 in ../sysdeps/x86_64/memset.S
103 in ../sysdeps/x86_64/memset.S
MVM_fixed_size_alloc_zeroed (tc=tc@entry=0x6036b0, al=<optimized out>, bytes=bytes@entry=312) at src/core/fixedsizealloc.c:147
147 }
allocate_frame (tc=tc@entry=0x6036b0, static_frame_body=static_frame_body@entry=0x68733d8, spesh_cand=spesh_cand@entry=0x82dce30) at src/core/frame.c:317
317 ? frame->work + (spesh_cand ? spesh_cand->num_locals : static_frame_body->num_locals)
306 frame->work = MVM_fixed_size_alloc_zeroed(tc, tc->instance->fsa, work_size);
307 frame->allocd_work = work_size;
317 ? frame->work + (spesh_cand ? spesh_cand->num_locals : static_frame_body->num_locals)
318 : NULL;
316 frame->args = work_size
319 frame->cur_args_callsite = NULL;
321 return frame;
322 }
MVM_frame_invoke (tc=<optimized out>, static_frame=0x68733c0, callsite=0x4bb0980, args=0x5e1c9f0, outer=<optimized out>, code_ref=0x809e1a0, spesh_cand=spesh_cand@entry=-1) at src/core/frame.c:442
442 if (chosen_cand->jitcode) {
441 frame = allocate_frame(tc, static_frame_body, chosen_cand);
442 if (chosen_cand->jitcode) {
443 frame->effective_bytecode = chosen_cand->jitcode->bytecode;
444 frame->jit_entry_label = chosen_cand->jitcode->labels[0];
443 frame->effective_bytecode = chosen_cand->jitcode->bytecode;
444 frame->jit_entry_label = chosen_cand->jitcode->labels[0];
449 frame->effective_handlers = chosen_cand->handlers;
450 frame->effective_spesh_slots = chosen_cand->spesh_slots;
451 frame->spesh_cand = chosen_cand;
452 frame->spesh_log_idx = -1;
450 frame->effective_spesh_slots = chosen_cand->spesh_slots;
471 frame->code_ref = code_ref;
474 if (outer) {
465 frame->tc = tc;
468 frame->static_info = static_frame;
471 frame->code_ref = code_ref;
474 if (outer) {
478 if (outer->static_info->body.orig_bytecode == static_frame_body->outer->body.orig_bytecode)
479 frame->outer = outer;
505 MVM_frame_inc_ref(tc, frame->outer);
MVM_frame_inc_ref (tc=tc@entry=0x6036b0, frame=0x7554700) at src/core/frame.c:76
76 MVMFrame * MVM_frame_inc_ref(MVMThreadContext *tc, MVMFrame *frame) {
77 MVM_incr(&frame->ref_count);
AO_fetch_and_add_full (incr=1, p=0x7554770) at 3rdparty/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86.h:57
57 __asm__ __volatile__ ("lock; xadd %0, %1" :
MVM_frame_inc_ref (tc=tc@entry=0x6036b0, frame=0x7554700) at src/core/frame.c:79
79 }
MVM_frame_invoke (tc=<optimized out>, static_frame=<optimized out>, callsite=0x4bb0980, args=0x5e1c9f0, outer=<optimized out>, code_ref=<optimized out>, spesh_cand=spesh_cand@entry=-1) at src/core/frame.c:508
508 if (tc->cur_frame)
509 frame->caller = MVM_frame_inc_ref(tc, tc->cur_frame);
MVM_frame_inc_ref (tc=tc@entry=0x6036b0, frame=0x78ae6b0) at src/core/frame.c:76
76 MVMFrame * MVM_frame_inc_ref(MVMThreadContext *tc, MVMFrame *frame) {
77 MVM_incr(&frame->ref_count);
AO_fetch_and_add_full (incr=1, p=0x78ae720) at 3rdparty/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86.h:57
57 __asm__ __volatile__ ("lock; xadd %0, %1" :
MVM_frame_inc_ref (tc=tc@entry=0x6036b0, frame=0x78ae6b0) at src/core/frame.c:79
79 }
MVM_frame_invoke (tc=<optimized out>, static_frame=<optimized out>, callsite=0x4bb0980, args=0x5e1c9f0, outer=<optimized out>, code_ref=<optimized out>, spesh_cand=spesh_cand@entry=-1) at src/core/frame.c:521
521 MVM_args_proc_init(tc, &frame->params, callsite, args);
512 frame->keep_caller = 0;
513 frame->in_continuation = 0;
517 frame->ref_count = 1;
521 MVM_args_proc_init(tc, &frame->params, callsite, args);
518 frame->gc_seq_number = 0;
521 MVM_args_proc_init(tc, &frame->params, callsite, args);
MVM_args_proc_init (tc=tc@entry=0x6036b0, ctx=ctx@entry=0x84795b8, callsite=callsite@entry=0x4bb0980, args=args@entry=0x5e1c9f0) at src/core/args.c:21
21 void MVM_args_proc_init(MVMThreadContext *tc, MVMArgProcContext *ctx, MVMCallsite *callsite, MVMRegister *args) {
25 init_named_used(tc, ctx, (callsite->arg_count - callsite->num_pos) / 2);
23 ctx->callsite = callsite;
25 init_named_used(tc, ctx, (callsite->arg_count - callsite->num_pos) / 2);
init_named_used (tc=0x6036b0, num=0, ctx=<optimized out>, ctx=<optimized out>) at src/core/args.c:3
3 static void init_named_used(MVMThreadContext *tc, MVMArgProcContext *ctx, MVMuint16 num) {
4 if (ctx->named_used && ctx->named_used_size >= num) { /* reuse the old one */
16 : NULL;
13 ctx->named_used_size = num;
16 : NULL;
14 ctx->named_used = ctx->named_used_size
18 }
MVM_args_proc_init (tc=tc@entry=0x6036b0, ctx=ctx@entry=0x84795b8, callsite=callsite@entry=0x4bb0980, args=args@entry=0x5e1c9f0) at src/core/args.c:27
27 ctx->num_pos = callsite->num_pos;
26 ctx->args = args;
27 ctx->num_pos = callsite->num_pos;
28 ctx->arg_count = callsite->arg_count;
29 ctx->arg_flags = NULL; /* will be populated by flattener if needed */
28 ctx->arg_count = callsite->arg_count;
30 }
MVM_frame_invoke (tc=<optimized out>, static_frame=<optimized out>, callsite=0x4bb0980, args=0x5e1c9f0, outer=<optimized out>, code_ref=<optimized out>, spesh_cand=spesh_cand@entry=-1) at src/core/frame.c:529
529 frame->flags = 0;
532 frame->osr_counter = 0;
537 *(tc->interp_cur_op) = frame->effective_bytecode;
524 frame->context_object = NULL;
525 frame->special_return_data = NULL;
526 frame->mark_special_return_data = NULL;
536 tc->cur_frame = frame;
537 *(tc->interp_cur_op) = frame->effective_bytecode;
538 *(tc->interp_bytecode_start) = frame->effective_bytecode;
539 *(tc->interp_reg_base) = frame->work;
540 *(tc->interp_cu) = static_frame_body->cu;
546 if (static_frame_body->has_state_vars) {
590 }
invoke_handler (tc=<optimized out>, invokee=<optimized out>, callsite=<optimized out>, args=<optimized out>) at src/6model/reprs/MVMCode.c:15
15 }
callback_invoke (tc=0x6036b0, data=<optimized out>) at src/core/nativecall.c:429
429 tc->thread_entry_frame = tc->cur_frame;
430 }
MVM_interp_run (tc=tc@entry=0x6036b0, initial_invoke=0x8479570, invoke_data=0x666650, invoke_data@entry=0x7fffffffc800) at src/core/interp.c:65
65 setjmp(tc->interp_jump);
_setjmp () at ../sysdeps/x86_64/bsd-_setjmp.S:30
30 ../sysdeps/x86_64/bsd-_setjmp.S: No such file or directory.
32 in ../sysdeps/x86_64/bsd-_setjmp.S
__sigsetjmp () at ../sysdeps/x86_64/setjmp.S:26
26 ../sysdeps/x86_64/setjmp.S: No such file or directory.
35 in ../sysdeps/x86_64/setjmp.S
36 in ../sysdeps/x86_64/setjmp.S
37 in ../sysdeps/x86_64/setjmp.S
41 in ../sysdeps/x86_64/setjmp.S
42 in ../sysdeps/x86_64/setjmp.S
43 in ../sysdeps/x86_64/setjmp.S
44 in ../sysdeps/x86_64/setjmp.S
45 in ../sysdeps/x86_64/setjmp.S
47 in ../sysdeps/x86_64/setjmp.S
49 in ../sysdeps/x86_64/setjmp.S
50 in ../sysdeps/x86_64/setjmp.S
53 in ../sysdeps/x86_64/setjmp.S
55 in ../sysdeps/x86_64/setjmp.S
64 in ../sysdeps/x86_64/setjmp.S
__sigjmp_save (env=0x603808, savemask=0) at sigjmp.c:29
29 sigjmp.c: No such file or directory.
28 in sigjmp.c
29 in sigjmp.c
34 in sigjmp.c
MVM_interp_run (tc=0x603808, tc@entry=0x6036b0, initial_invoke=0x0, invoke_data=0x3e6f54103b011e8d, invoke_data@entry=0x7fffffffc800) at src/core/interp.c:84
84 goto NEXT;
4799 if (tc->cur_frame->spesh_cand->jitcode == NULL) {
4804 if (MVM_jit_enter_code(tc, cu, tc->cur_frame->spesh_cand->jitcode)) {
4803 cur_op -= 2;
4804 if (MVM_jit_enter_code(tc, cu, tc->cur_frame->spesh_cand->jitcode)) {
MVM_jit_enter_code (tc=0x6036b0, cu=0x666650, code=0x76e9a60) at src/jit/compile.c:120
120 MVMJitCode *code) {
122 void *label = tc->cur_frame->jit_entry_label;
123 MVMint32 ctrl = code->func_ptr(tc, cu, label);
Hardware watchpoint 2: *0x7bd3000
Old value = 99
New value = 0
_int_free (av=0x7ffff7844640 <main_arena>, p=0x7bd2ff0, have_lock=0) at malloc.c:3909
3909 malloc.c: No such file or directory.
3911 in malloc.c
4067 in malloc.c
gc_free (tc=<optimized out>, obj=0x7ffff6780f30) at src/6model/reprs/MVMString.c:66
66 MVM_checked_free_null(str->body.storage.any);
67 str->body.num_graphs = str->body.num_strands = 0;
68 }
MVM_gc_collect_free_nursery_uncopied (tc=tc@entry=0x6036b0, limit=0x7ffff6780fc8) at src/gc/collect.c:563
563 if (dead && item->flags & MVM_CF_HAS_OBJECT_ID)
587 scan = (char *)scan + item->size;
533 while (scan < limit) {
537 MVMuint8 dead = !(item->flags & MVM_CF_FORWARDER_VALID);
543 if (!(item->flags & (MVM_CF_TYPE_OBJECT | MVM_CF_STABLE))) {
548 if (dead && REPR(obj)->gc_free)
549 REPR(obj)->gc_free(tc, obj);
gc_free (tc=0x6036b0, obj=0x7ffff6780f60) at src/6model/reprs/P6opaque.c:157
157 static void gc_free(MVMThreadContext *tc, MVMObject *obj) {
160 void *data = MVM_p6opaque_real_data(tc, OBJECT_BODY(obj));
157 static void gc_free(MVMThreadContext *tc, MVMObject *obj) {
163 for (i = 0; repr_data->gc_cleanup_slots[i] >= 0; i++) {
157 static void gc_free(MVMThreadContext *tc, MVMObject *obj) {
158 MVMP6opaqueREPRData *repr_data = (MVMP6opaqueREPRData *)STABLE(obj)->REPR_data;
(gdb) bt
#0 gc_free (tc=0x6036b0, obj=0x7ffff6780f60) at src/6model/reprs/P6opaque.c:158
#1 0x00007ffff79994c0 in MVM_gc_collect_free_nursery_uncopied (tc=tc@entry=0x6036b0, limit=0x7ffff6780fc8) at src/gc/collect.c:549
#2 0x00007ffff79963bd in run_gc (tc=tc@entry=0x6036b0, what_to_do=what_to_do@entry=0 '\000') at src/gc/orchestrate.c:308
#3 0x00007ffff79969c7 in MVM_gc_enter_from_allocator (tc=tc@entry=0x6036b0) at src/gc/orchestrate.c:408
#4 0x00007ffff7996ba8 in MVM_gc_allocate_nursery (tc=0x6036b0, size=72) at src/gc/allocation.c:32
#5 0x00007ffff7996d6a in MVM_gc_allocate_object (tc=0x6036b0, st=0x605848) at src/gc/allocation.c:85
#6 0x00007ffff7983022 in MVM_frame_takeclosure (tc=0x6036b0, code=0x6950ad0) at src/core/frame.c:900
#7 0x00007ffff2e4b07e in ?? ()
#8 0x00000000006036b0 in ?? ()
#9 0x00007fffffffc520 in ?? ()
#10 0x00000001f3dd5d00 in ?? ()
#11 0x0000000007554700 in ?? ()
#12 0x00007fffffffc5f0 in ?? ()
#13 0x00007fffffffc530 in ?? ()
#14 0x00007fffffffd3d0 in ?? ()
#15 0x00000000006036b0 in ?? ()
#16 0x0000000000000000 in ?? ()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment