Skip to content

Instantly share code, notes, and snippets.

@tadzik
Created October 2, 2012 08:25
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 tadzik/3817314 to your computer and use it in GitHub Desktop.
Save tadzik/3817314 to your computer and use it in GitHub Desktop.
┌─[tadzik@yavin4]─[~]
└─[%]─> cat threads.nqp
say("alive");
my $x := 5;
my $a := sub foo() {
say($x);
say(5);
}
my $b := pir::new__PSP('Task', $a);
pir::schedule__0P($b);
pir::wait__0P($b);
say(7);
┌─[tadzik@yavin4]─[~]
└─[%]─> parrot-nqp threads.nqp
alive
5
5
7
┌─[tadzik@yavin4]─[~]
└─[%]─> nqp threads.nqp
alive
src/pmc.c:209: failed assertion 'interp->n_vtable_max > base_type'
Backtrace - Obtained 22 stack frames (max trace depth is 32).
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x19f0d5) [0x7f333242d0d5]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(Parrot_confess+0x8a) [0x7f333242d09a]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(Parrot_pmc_new+0x5e) [0x7f333247a4ee]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(Parrot_ex_build_exception+0x68) [0x7f333242be98]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x19e79e) [0x7f333242c79e]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(Parrot_ex_throw_from_c_args+0xf7) [0x7f333242cc27]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x21ee71) [0x7f33324ace71]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x21fafc) [0x7f33324adafc]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x1fd8e5) [0x7f333248b8e5]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x17ba41) [0x7f3332409a41]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x1ef6b9) [0x7f333247d6b9]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x1eeb62) [0x7f333247cb62]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x1c3651) [0x7f3332451651]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(Parrot_pcc_invoke_from_sig_object+0x190) [0x7f333244a1a0]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(Parrot_ext_call+0x188) [0x7f333242dca8]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x31df34) [0x7f33325abf34]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(Parrot_pcc_invoke_from_sig_object+0x12b) [0x7f333244a13b]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(Parrot_ext_call+0x188) [0x7f333242dca8]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x1f649d) [0x7f333248449d]
/home/tadzik/src/parrot/install/lib/libparrot.so.4.7.0(+0x1f8244) [0x7f3332486244]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x6b50) [0x7f33315a0b50]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f332f34170d]
Attempting to get PIR backtrace. No guarantees. Here goes...
current instr.: '' pc 118 ((file unknown):63511984) (threads.nqp:1)
called from Sub '' pc 29466 (src/stage2/gen/NQPHLL.pir:11147) (src/stage2/gen/NQPHLL.pm:1219)
called from Sub 'eval' pc 29318 (src/stage2/gen/NQPHLL.pir:11086) (src/stage2/gen/NQPHLL.pm:1206)
called from Sub 'evalfiles' pc 31784 (src/stage2/gen/NQPHLL.pir:12096) (src/stage2/gen/NQPHLL.pm:1419)
called from Sub 'command_eval' pc 30498 (src/stage2/gen/NQPHLL.pir:11596) (src/stage2/gen/NQPHLL.pm:1329)
called from Sub 'command_line' pc 30040 (src/stage2/gen/NQPHLL.pir:11427) (src/stage2/gen/NQPHLL.pm:1304)
called from Sub 'MAIN' pc 699 (src/stage2/gen/NQP.pir:228) (src/stage2/gen/NQP.pm:3134)
called from Sub '' pc 444 (src/stage2/gen/NQP.pir:156) (src/stage2/gen/NQP.pm:1500)
zsh: abort nqp threads.nqp
@rurban
Copy link

rurban commented Nov 19, 2012

$ lldb nqp ext/nqp-rx/t/nqp/50-threads.t
Current executable set to 'nqp' (x86_64).
(lldb) r
Process 26364 launched: '/usr/local/bin/nqp' (x86_64)
alive
Process 26364 stopped

  • thread #3: tid = 0x2203, 0x0000000101e07580, stop reason = EXC_BAD_ACCESS (code=2, address=0x101e07580)
    frame #0: 0x0000000101e07580
    -> 0x101e07580: addb %dl, 65(%rax)
    0x101e07583: addb $1, %al
    0x101e07585: addb %al, (%rax)
    0x101e07587: addb %dl, -119(%rax)
    (lldb) bt
  • thread #3: tid = 0x2203, 0x0000000101e07580, stop reason = EXC_BAD_ACCESS (code=2, address=0x101e07580)
    frame #0: 0x0000000101e07580
    frame #1: 0x0000000101db869b nqp_group.bundleParrot_NQPLexPad_set_pointer + 43 at nqplexpad.c:290 frame #2: 0x0000000100343642 libparrot.dylibParrot_Sub_invoke + 1026 at sub.c:505
    frame #3: 0x00000001002c042b libparrot.dylibParrot_pcc_invoke_from_sig_object + 299 at pcc.c:330 frame #4: 0x00000001002a3608 libparrot.dylibParrot_ext_call + 392 at extend.c:158
    frame #5: 0x0000000100424d84 libparrot.dylibParrot_Task_invoke + 340 at task.c:168 frame #6: 0x00000001002c042b libparrot.dylibParrot_pcc_invoke_from_sig_object + 299 at pcc.c:330
    frame #7: 0x00000001002a3608 libparrot.dylibParrot_ext_call + 392 at extend.c:158 frame #8: 0x00000001002fad1d libparrot.dylibParrot_cx_next_task + 317 at scheduler.c:231
    frame #9: 0x00000001002fcaf4 libparrot.dylibParrot_thread_outer_runloop + 148 at thread.c:318 frame #10: 0x00007fff89158742 libsystem_c.dylib_pthread_start + 327
    frame #11: 0x00007fff89145181 libsystem_c.dylib`thread_start + 13

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment