Issue #7468 has been updated by tarui (Masaya Tarui).

Category set to core
Assignee set to authorNari (Narihiro Nakamura)

rb_threadptr_execute_interruptsçµ???±ã??thread?????¿ã??èµ·ã???????????
machine_stack_end???正確??«ã?¨ã????¦ã???????????mark???????????ºç???????¦ã????¾ã?????
以ä???????¢ã?»ã?³ã????©ã?³ã?¼ã????®æ??ç²?

(gdb) disassemble
Dump of assembler code for function rb_threadptr_execute_interrupts:
   0x00002aab414e6c30 <+0>:     push   %r15
   0x00002aab414e6c32 <+2>:     mov    %rsp,%rdx

   0x00002aab414e6c40 <+16>:    sub    $0x98,%rsp

   0x00002aab414e6c4b <+27>:    mov    %rdx,0x38(%rsp)

   0x00002aab414e6f26 <+758>:   callq  0x2aab414e69b0 <rb_gc_save_machine_context>
   0x00002aab414e6f2b <+763>:   mov    0x38(%rsp),%rdx
   0x00002aab414e6f30 <+768>:   mov    0x8(%r12),%rdi
   0x00002aab414e6f35 <+773>:   mov    %rdx,0x1b0(%r12)
   0x00002aab414e6f3d <+781>:   callq  0x2aab414e4730 <gvl_yield>

??®ã???????«å????????rsp??§ã?¯ã?ªã??????¢æ?°ã?«å?¥ã?£ã??å½???????rsp???machine_stack_end??¨ã????¦ã????¾ã?£ã?¦ã????¾ã?????
rb_thread_schedule??§ã??
   0x00002aab414e8f40 <+48>:    callq  0x2aab414e69b0 <rb_gc_save_machine_context>
   0x00002aab414e8f45 <+53>:    mov    0x8(%rbx),%rdi
   0x00002aab414e8f49 <+57>:    mov    %rsp,%rax
   0x00002aab414e8f4c <+60>:    mov    %rax,0x1b0(%rbx)
   0x00002aab414e8f53 <+67>:    callq  0x2aab414e4730 <gvl_yield>
??®ã???????«ã?¡ã????????rsp???使ã?£ã?¦ã???????§ã?????????????®è¾º??®æ???????¯ã??????????????ªã????§ã????­ã??
gcc??®ã????°ã????£ã?????????????®ã????ªã?¨ã????????

inline assembler???使ã???????rb_gc_set_stack_end???使ã??????????«ã???????????
rb_thread_schedule_limits?????¨å????¢æ?°ã?¸å?????????????¦ã????®ã????²ã????°ã??
??ºç???????ªã??????????«ã?ªã????®ã?§ã????????
??·ä???????«ã?©ã?????å½?????????®ã?????nari????????«ã??ä»»ã???????¦ã???????§ã???????????ï¼?

----------------------------------------
Bug #7468: GC_GUARDæ¼??????????????markæ¼?????£ã?½ã????¨ã?©ã?¼ã????ºç???????¦ã?¾ã?????
https://bugs.ruby-lang.org/issues/7468#change-34295

Author: tarui (Masaya Tarui)
Status: Open
Priority: High
Assignee: authorNari (Narihiro Nakamura)
Category: core
Target version: 2.0.0
ruby -v: ruby -v: ruby 2.0.0dev (2012-11-30 trunk 37999) [x86_64-linux]


?????¤ã????????test-all??§æ???????¨ã?©ã?¼ã????ºç????????????????«ã?ªã?£ã?¦ã?¾ã?????

make  test-all TESTS="-qv  -n /test_string\$$/"

???segv???
  1) Error:
 test_string(DL::TestFunc):
 ArgumentError: assertion message must be String or Proc, but Thread::Backtrace was given.
??ªã?©ã?¨è??????????????????«ã?ªã????¾ã????????
GC.stress = true ??ªã?®ã?¨ã??Thread::Backtrace??????常ã??pass??§ã?¯å?¥ã??äº???¯ã?ªã????£ã?½ã????®ã??GC??¨ã????®ã????°ã????¨æ???????¾ã?????



-- 
http://bugs.ruby-lang.org/