Guest User

Untitled

a guest
May 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.39 KB | None | 0 0
  1. ## code
  2. t = Thread.new { p 5 }
  3. t.join
  4.  
  5. ## gdb
  6. [New Thread 47840783618432 (LWP 9432)]
  7. [New Thread 1082132800 (LWP 9435)]
  8. 5
  9.  
  10. Program received signal SIGINT, Interrupt.
  11. [Switching to Thread 47840783618432 (LWP 9432)]
  12. 0x00002b82ccd16356 in poll () from /lib/libc.so.6
  13. (gdb) bt
  14. #0 0x00002b82ccd16356 in poll () from /lib/libc.so.6
  15. #1 0x00000000005f87b4 in poll_poll (loop=0xf9a6c0, timeout=<value optimized out>) at ev_poll.c:90
  16. #2 0x00000000005f6df8 in ev_loop (loop=0xf9a6c0, flags=2) at ev.c:2017
  17. #3 0x0000000000565c8d in rubinius::event::Loop::run_and_wait (this=0xfd16a0) at vm/event.cpp:321
  18. #4 0x00000000005a4c58 in rubinius::VM::run_and_monitor (this=0xfa72b0) at vm/vm.cpp:375
  19. #5 0x0000000000552051 in rubinius::CompiledFile::execute (this=0x1e89d50, state=0xfa72b0)
  20. at vm/compiled_file.cpp:58
  21. #6 0x0000000000589e7d in rubinius::Environment::run_file (this=0x7fffde822b90,
  22. file=@0x7fffde822bc0) at vm/environment.cpp:91
  23. #7 0x00000000005f2472 in main (argc=2, argv=0x7fffde822d08) at vm/drivers/cli.cpp:62
  24. (gdb) rbt
  25. 0x2b82cd0cc538: Thread#join_inner in kernel/common/thread.rb:229
  26. 0x2b82cd0cc470: Thread#join in kernel/common/thread.rb:200
  27. 0x2b82cd0cbdb0: #<Object:0x11be028>.__script__ in thread.rb:2
  28. 0x2b82cd0cbd00: CompiledMethod#activate_as_script in kernel/common/compiled_method.rb:253
  29. 0x2b82cd0cbc48: CompiledMethod#as_script in kernel/common/compiled_method.rb:246
  30. 0x2608f88: Compile.single_load in kernel/common/compile.rb:241
  31. 0x26093f8: Compile.load_from_extension in kernel/common/compile.rb:319
  32. 0x2603698: Object#__script__ in kernel/loader.rb:210
  33. 0x2601368: Object#__trampoline__ in <unknown>
  34. $1 = void
  35. (gdb) n
  36. Single stepping until exit from function poll,
  37. which has no line number information.
  38. poll_poll (loop=0xf9a6c0, timeout=<value optimized out>) at ev_poll.c:92
  39. 92 if (expect_false (res < 0))
  40. Current language: auto; currently c
  41. (gdb)
  42. 90 int res = poll (polls, pollcnt, (int)ceil (timeout * 1000.));
  43. (gdb)
  44. 92 if (expect_false (res < 0))
  45. (gdb)
  46. 94 if (errno == EBADF)
  47. (gdb)
  48. 96 else if (errno == ENOMEM && !syserr_cb)
  49. (gdb)
  50. 98 else if (errno != EINTR)
  51. (gdb)
  52. 117 }
  53. (gdb)
  54. ev_loop (loop=0xf9a6c0, flags=2) at ev.c:1840
  55. 1840 if (expect_true (have_monotonic))
  56. (gdb)
  57. 531 if (expect_true (have_monotonic))
  58. (gdb)
  59. 1842 ev_tstamp odiff = rtmn_diff;
  60. (gdb)
  61. 534 clock_gettime (CLOCK_MONOTONIC, &ts);
  62. (gdb)
  63. 531 if (expect_true (have_monotonic))
  64. (gdb)
  65. 518 clock_gettime (CLOCK_REALTIME, &ts);
  66. (gdb)
  67. 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
  68. (gdb)
  69. 1848 if (expect_true (mn_now - now_floor < MIN_TIMEJUMP * .5))
  70. (gdb)
  71. 1844 mn_now = get_clock ();
  72. (gdb)
  73. 1848 if (expect_true (mn_now - now_floor < MIN_TIMEJUMP * .5))
  74. (gdb)
  75. 1854 now_floor = mn_now;
  76. (gdb)
  77. 518 clock_gettime (CLOCK_REALTIME, &ts);
  78. (gdb)
  79. 1855 ev_rt_now = ev_time ();
  80. (gdb)
  81. 518 clock_gettime (CLOCK_REALTIME, &ts);
  82. (gdb)
  83. 1855 ev_rt_now = ev_time ();
  84. (gdb)
  85. 1867 rtmn_diff = ev_rt_now - mn_now;
  86. (gdb)
  87. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  88. (gdb)
  89. 1867 rtmn_diff = ev_rt_now - mn_now;
  90. (gdb)
  91. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  92. (gdb)
  93. 1867 rtmn_diff = ev_rt_now - mn_now;
  94. (gdb)
  95. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  96. (gdb)
  97. 518 clock_gettime (CLOCK_REALTIME, &ts);
  98. (gdb)
  99. 1872 ev_rt_now = ev_time ();
  100. (gdb)
  101. 531 if (expect_true (have_monotonic))
  102. (gdb)
  103. 534 clock_gettime (CLOCK_MONOTONIC, &ts);
  104. (gdb)
  105. 1872 ev_rt_now = ev_time ();
  106. (gdb)
  107. 534 clock_gettime (CLOCK_MONOTONIC, &ts);
  108. (gdb)
  109. 531 if (expect_true (have_monotonic))
  110. (gdb)
  111. 1872 ev_rt_now = ev_time ();
  112. (gdb)
  113. 531 if (expect_true (have_monotonic))
  114. (gdb)
  115. 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
  116. (gdb)
  117. 1865 for (i = 4; --i; )
  118. (gdb)
  119. 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
  120. (gdb)
  121. 1873 mn_now = get_clock ();
  122. (gdb)
  123. 1874 now_floor = mn_now;
  124. (gdb)
  125. 1865 for (i = 4; --i; )
  126. (gdb)
  127. 1867 rtmn_diff = ev_rt_now - mn_now;
  128. (gdb)
  129. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  130. (gdb)
  131. 1867 rtmn_diff = ev_rt_now - mn_now;
  132. (gdb)
  133. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  134. (gdb)
  135. 1867 rtmn_diff = ev_rt_now - mn_now;
  136. (gdb)
  137. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  138. (gdb)
  139. 518 clock_gettime (CLOCK_REALTIME, &ts);
  140. (gdb)
  141. 1872 ev_rt_now = ev_time ();
  142. (gdb)
  143. 531 if (expect_true (have_monotonic))
  144. (gdb)
  145. 534 clock_gettime (CLOCK_MONOTONIC, &ts);
  146. (gdb)
  147. 1872 ev_rt_now = ev_time ();
  148. (gdb)
  149. 534 clock_gettime (CLOCK_MONOTONIC, &ts);
  150. (gdb)
  151. 531 if (expect_true (have_monotonic))
  152. (gdb)
  153. 1872 ev_rt_now = ev_time ();
  154. (gdb)
  155. 531 if (expect_true (have_monotonic))
  156. (gdb)
  157. 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
  158. (gdb)
  159. 1865 for (i = 4; --i; )
  160. (gdb)
  161. 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
  162. (gdb)
  163. 1873 mn_now = get_clock ();
  164. (gdb)
  165. 1874 now_floor = mn_now;
  166. (gdb)
  167. 1865 for (i = 4; --i; )
  168. (gdb)
  169. 1867 rtmn_diff = ev_rt_now - mn_now;
  170. (gdb)
  171. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  172. (gdb)
  173. 1867 rtmn_diff = ev_rt_now - mn_now;
  174. (gdb)
  175. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  176. (gdb)
  177. 1867 rtmn_diff = ev_rt_now - mn_now;
  178. (gdb)
  179. 1869 if (expect_true (fabs (odiff - rtmn_diff) < MIN_TIMEJUMP))
  180. (gdb)
  181. 518 clock_gettime (CLOCK_REALTIME, &ts);
  182. (gdb)
  183. 1872 ev_rt_now = ev_time ();
  184. (gdb)
  185. 531 if (expect_true (have_monotonic))
  186. (gdb)
  187. 534 clock_gettime (CLOCK_MONOTONIC, &ts);
  188. (gdb)
  189. 1872 ev_rt_now = ev_time ();
  190. (gdb)
  191. 534 clock_gettime (CLOCK_MONOTONIC, &ts);
  192. (gdb)
  193. 531 if (expect_true (have_monotonic))
  194. (gdb)
  195. 1872 ev_rt_now = ev_time ();
  196. (gdb)
  197. 531 if (expect_true (have_monotonic))
  198. (gdb)
  199. 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
  200. (gdb)
  201. 1865 for (i = 4; --i; )
  202. (gdb)
  203. 519 return ts.tv_sec + ts.tv_nsec * 1e-9;
  204. (gdb)
  205. 1873 mn_now = get_clock ();
  206. (gdb)
  207. 1874 now_floor = mn_now;
  208. (gdb)
  209. 1865 for (i = 4; --i; )
  210. (gdb)
  211. 1878 periodics_reschedule (EV_A);
  212. (gdb)
  213. 1737 while (timercnt && ANHE_at (timers [HEAP0]) < mn_now)
  214. (gdb)
  215. 1769 while (periodiccnt && ANHE_at (periodics [HEAP0]) < ev_rt_now)
  216. (gdb)
  217. 1713 if (expect_false (idleall))
  218. (gdb)
  219. 2035 if (expect_false (checkcnt))
  220. (gdb)
  221. 656 for (i = 0; i < eventcnt; ++i)
  222. (gdb)
  223. 1694 while (pendingcnt [pri])
  224. (gdb)
  225. 1693 for (pri = NUMPRI; pri--; )
  226. (gdb)
  227. 1694 while (pendingcnt [pri])
  228. (gdb)
  229. 1693 for (pri = NUMPRI; pri--; )
  230. (gdb)
  231. 1694 while (pendingcnt [pri])
  232. (gdb)
  233. 1693 for (pri = NUMPRI; pri--; )
  234. (gdb)
  235. 1694 while (pendingcnt [pri])
  236. (gdb)
  237. 1693 for (pri = NUMPRI; pri--; )
  238. (gdb)
  239. 1694 while (pendingcnt [pri])
  240. (gdb)
  241. 1693 for (pri = NUMPRI; pri--; )
  242. (gdb)
  243. 2040 while (expect_true (
  244. (gdb)
  245. 2046 if (loop_done == EVUNLOOP_ONE)
  246. (gdb)
  247. 2048 }
  248. (gdb)
  249. rubinius::event::Loop::run_and_wait (this=0xfd16a0) at vm/event.cpp:322
  250. 322 }
  251. Current language: auto; currently c++
  252. (gdb)
  253. rubinius::VM::run_and_monitor (this=0xfa72b0) at vm/vm.cpp:374
  254. 374 while(!find_and_activate_thread()) {
  255. (gdb)
  256. 375 events->run_and_wait();
  257. (gdb)
  258. 374 while(!find_and_activate_thread()) {
  259. (gdb)
  260. 375 events->run_and_wait();
  261. (gdb)
  262. 374 while(!find_and_activate_thread()) {
  263. (gdb)
  264. 375 events->run_and_wait();
  265. (gdb)
  266. 374 while(!find_and_activate_thread()) {
  267. (gdb)
  268. 375 events->run_and_wait();
  269. (gdb)
  270. 374 while(!find_and_activate_thread()) {
  271. (gdb)
  272. 375 events->run_and_wait();
  273. (gdb)
  274. 374 while(!find_and_activate_thread()) {
  275. (gdb)
  276. 375 events->run_and_wait();
  277. (gdb)
Add Comment
Please, Sign In to add comment