Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## code
- t = Thread.new { p 5 }
- t.join
- ## gdb
- [New Thread 47840783618432 (LWP 9432)]
- [New Thread 1082132800 (LWP 9435)]
- 5
- Program received signal SIGINT, Interrupt.
- [Switching to Thread 47840783618432 (LWP 9432)]
- 0x00002b82ccd16356 in poll () from /lib/libc.so.6
- (gdb) bt
- #0 0x00002b82ccd16356 in poll () from /lib/libc.so.6
- #1 0x00000000005f87b4 in poll_poll (loop=0xf9a6c0, timeout=<value optimized out>) at ev_poll.c:90
- #2 0x00000000005f6df8 in ev_loop (loop=0xf9a6c0, flags=2) at ev.c:2017
- #3 0x0000000000565c8d in rubinius::event::Loop::run_and_wait (this=0xfd16a0) at vm/event.cpp:321
- #4 0x00000000005a4c58 in rubinius::VM::run_and_monitor (this=0xfa72b0) at vm/vm.cpp:375
- #5 0x0000000000552051 in rubinius::CompiledFile::execute (this=0x1e89d50, state=0xfa72b0)
- at vm/compiled_file.cpp:58
- #6 0x0000000000589e7d in rubinius::Environment::run_file (this=0x7fffde822b90,
- file=@0x7fffde822bc0) at vm/environment.cpp:91
- #7 0x00000000005f2472 in main (argc=2, argv=0x7fffde822d08) at vm/drivers/cli.cpp:62
- (gdb) rbt
- 0x2b82cd0cc538: Thread#join_inner in kernel/common/thread.rb:229
- 0x2b82cd0cc470: Thread#join in kernel/common/thread.rb:200
- 0x2b82cd0cbdb0: #<Object:0x11be028>.__script__ in thread.rb:2
- 0x2b82cd0cbd00: CompiledMethod#activate_as_script in kernel/common/compiled_method.rb:253
- 0x2b82cd0cbc48: CompiledMethod#as_script in kernel/common/compiled_method.rb:246
- 0x2608f88: Compile.single_load in kernel/common/compile.rb:241
- 0x26093f8: Compile.load_from_extension in kernel/common/compile.rb:319
- 0x2603698: Object#__script__ in kernel/loader.rb:210
- 0x2601368: Object#__trampoline__ in <unknown>
- $1 = void
- (gdb) n
- Single stepping until exit from function poll,
- which has no line number information.
- poll_poll (loop=0xf9a6c0, timeout=<value optimized out>) at ev_poll.c:92
- 92 if (expect_false (res < 0))
- Current language: auto; currently c
- (gdb)
- 90 int res = poll (polls, pollcnt, (int)ceil (timeout * 1000.));
- (gdb)
- 92 if (expect_false (res < 0))
- (gdb)
- 94 if (errno == EBADF)
- (gdb)
- 96 else if (errno == ENOMEM && !syserr_cb)
- (gdb)
- 98 else if (errno != EINTR)
- (gdb)
- 117 }
- (gdb)
- ev_loop (loop=0xf9a6c0, flags=2) at ev.c:1840
- 1840 if (expect_true (have_monotonic))
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 1842 ev_tstamp odiff = rtmn_diff;
- (gdb)
- 534 clock_gettime (CLOCK_MONOTONIC, &ts);
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 518 clock_gettime (CLOCK_REALTIME, &ts);
- (gdb)
- 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
- (gdb)
- 1848 if (expect_true (mn_now - now_floor < MIN_TIMEJUMP * .5))
- (gdb)
- 1844 mn_now = get_clock ();
- (gdb)
- 1848 if (expect_true (mn_now - now_floor < MIN_TIMEJUMP * .5))
- (gdb)
- 1854 now_floor = mn_now;
- (gdb)
- 518 clock_gettime (CLOCK_REALTIME, &ts);
- (gdb)
- 1855 ev_rt_now = ev_time ();
- (gdb)
- 518 clock_gettime (CLOCK_REALTIME, &ts);
- (gdb)
- 1855 ev_rt_now = ev_time ();
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 518 clock_gettime (CLOCK_REALTIME, &ts);
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 534 clock_gettime (CLOCK_MONOTONIC, &ts);
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 534 clock_gettime (CLOCK_MONOTONIC, &ts);
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
- (gdb)
- 1865 for (i = 4; --i; )
- (gdb)
- 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
- (gdb)
- 1873 mn_now = get_clock ();
- (gdb)
- 1874 now_floor = mn_now;
- (gdb)
- 1865 for (i = 4; --i; )
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 518 clock_gettime (CLOCK_REALTIME, &ts);
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 534 clock_gettime (CLOCK_MONOTONIC, &ts);
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 534 clock_gettime (CLOCK_MONOTONIC, &ts);
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
- (gdb)
- 1865 for (i = 4; --i; )
- (gdb)
- 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
- (gdb)
- 1873 mn_now = get_clock ();
- (gdb)
- 1874 now_floor = mn_now;
- (gdb)
- 1865 for (i = 4; --i; )
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 1867 rtmn_diff = ev_rt_now - mn_now;
- (gdb)
- 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
- (gdb)
- 518 clock_gettime (CLOCK_REALTIME, &ts);
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 534 clock_gettime (CLOCK_MONOTONIC, &ts);
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 534 clock_gettime (CLOCK_MONOTONIC, &ts);
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 1872 ev_rt_now = ev_time ();
- (gdb)
- 531 if (expect_true (have_monotonic))
- (gdb)
- 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
- (gdb)
- 1865 for (i = 4; --i; )
- (gdb)
- 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
- (gdb)
- 1873 mn_now = get_clock ();
- (gdb)
- 1874 now_floor = mn_now;
- (gdb)
- 1865 for (i = 4; --i; )
- (gdb)
- 1878 periodics_reschedule (EV_A);
- (gdb)
- 1737 while (timercnt && ANHE_at (timers [HEAP0]) < mn_now)
- (gdb)
- 1769 while (periodiccnt && ANHE_at (periodics [HEAP0]) < ev_rt_now)
- (gdb)
- 1713 if (expect_false (idleall))
- (gdb)
- 2035 if (expect_false (checkcnt))
- (gdb)
- 656 for (i = 0; i < eventcnt; ++i)
- (gdb)
- 1694 while (pendingcnt [pri])
- (gdb)
- 1693 for (pri = NUMPRI; pri--; )
- (gdb)
- 1694 while (pendingcnt [pri])
- (gdb)
- 1693 for (pri = NUMPRI; pri--; )
- (gdb)
- 1694 while (pendingcnt [pri])
- (gdb)
- 1693 for (pri = NUMPRI; pri--; )
- (gdb)
- 1694 while (pendingcnt [pri])
- (gdb)
- 1693 for (pri = NUMPRI; pri--; )
- (gdb)
- 1694 while (pendingcnt [pri])
- (gdb)
- 1693 for (pri = NUMPRI; pri--; )
- (gdb)
- 2040 while (expect_true (
- (gdb)
- 2046 if (loop_done == EVUNLOOP_ONE)
- (gdb)
- 2048 }
- (gdb)
- rubinius::event::Loop::run_and_wait (this=0xfd16a0) at vm/event.cpp:322
- 322 }
- Current language: auto; currently c++
- (gdb)
- rubinius::VM::run_and_monitor (this=0xfa72b0) at vm/vm.cpp:374
- 374 while(!find_and_activate_thread()) {
- (gdb)
- 375 events->run_and_wait();
- (gdb)
- 374 while(!find_and_activate_thread()) {
- (gdb)
- 375 events->run_and_wait();
- (gdb)
- 374 while(!find_and_activate_thread()) {
- (gdb)
- 375 events->run_and_wait();
- (gdb)
- 374 while(!find_and_activate_thread()) {
- (gdb)
- 375 events->run_and_wait();
- (gdb)
- 374 while(!find_and_activate_thread()) {
- (gdb)
- 375 events->run_and_wait();
- (gdb)
- 374 while(!find_and_activate_thread()) {
- (gdb)
- 375 events->run_and_wait();
- (gdb)
Add Comment
Please, Sign In to add comment