On Thu, May 17, 2007 at 11:14:35PM +0900, Paul Brannan wrote: > This seems to make valgrind much happier. > > I'm seeing a segfault now, though, where I didn't see one before. It > may be the fault of an extension. I will see if I can make a small test > case. i = VM::InstructionSequence.new('for a in []; end') a = i.to_a i2 = VM::InstructionSequence.load(a) puts i2.disasm test3.rb:4: -- stack frame ------------ 0000 (0x402fb008): 00000000 0001 (0x402fb00c): 00000004 0002 (0x402fb010): 00000001 0003 (0x402fb014): 402ecc10 0004 (0x402fb018): 402ecaf8 0005 (0x402fb01c): 402ec10c 0006 (0x402fb020): 00000004 0007 (0x402fb024): 00000001 0008 (0x402fb028): 00000004 0009 (0x402fb02c): 402ec10c 0010 (0x402fb030): 00000004 0011 (0x402fb034): 00000001 <- lfp <- dfp -- control frame ---------- c:0004 p:---- s:0012 b:0012 l:000011 d:000011 CFUNC :disasm c:0003 p:0065 s:0009 b:0008 l:000007 d:000007 TOP test3.rb:4 c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------ --------------------------- DBG> : "test3.rb:4:in `<main>'" -- backtrace of native function call (Use addr2line) -- 0x80e46ec 0x80fbaa4 0x80b700f 0x4003ee31 0xffffe420 0x80d97fe 0x80d9efe 0x80d9f46 0x80e29f6 0x80df948 0x80e1e46 0x80e25da 0x80e4872 0x80e4942 0x805968e 0x80596c5 0x80596ff 0x8056b36 0x400f092b 0x8056a61 ------------------------------------------------------- [BUG] Segmentation fault ruby 1.9.0 (2007-05-17) [i686-linux] Aborted (core dumped) disasm seems to not like local_table being set to NULL when there are dynamic variables. Paul