From: John Carter Date: 2006-09-01T14:16:58+09:00 Subject: rcov & Ruby 1.8.5 Is it my fevered imagination, or has Ruby-1.8.5 clobbered rcov-0.7.0, causing it to segfault. Here is a backtrace... #0 coverage_mark_caller () at rcovrt.c:81 #1 0xb7b19535 in coverage_event_coverage_hook (event=, node=0xb7bd9450, self=3082662880, mid=23425, klass=3082634620) at rcovrt.c:154 #2 0x0805ded5 in rb_call0 (klass=, recv=3082662880, id=23425, oid=23425, argc=0, argv=0x0, body=0xb7bd948c, flags=) at eval.c:5952 #3 0x0805e751 in rb_call (klass=3082634620, recv=3082662880, mid=23425, argc=0, argv=0x0, scope=0) at eval.c:6048 #4 0x0805c010 in rb_eval (self=3082629180, n=) at eval.c:3443 #5 0x0805d3df in rb_eval (self=3082629180, n=) at eval.c:3173 #6 0x0805e344 in rb_call0 (klass=, recv=3082629180, id=11049, oid=11049, argc=0, argv=0x8, body=0xb7be8ae0, flags=) at eval.c:5954 #7 0x0805e751 in rb_call (klass=3082663220, recv=3082629180, mid=11049, argc=0, argv=0x8, scope=3) at eval.c:6048 #8 0x0806039e in rb_call_super (argc=0, argv=0x8) at eval.c:6216 #9 0x0805af10 in rb_eval (self=3082629180, n=) at eval.c:3505 #10 0x0805e344 in rb_call0 (klass=, recv=3082629180, id=11049, oid=11049, argc=0, argv=0x0, body=0xb7be5c78, flags=) at eval.c:5954 #11 0x0805e751 in rb_call (klass=3082663160, recv=3082629180, mid=11049, argc=0, argv=0x0, scope=0) at eval.c:6048 #12 0x0805c010 in rb_eval (self=3084253680, n=) at eval.c:3443 #13 0x080692ae in ruby_exec_internal () at eval.c:1604 #14 0x080692e6 in ruby_exec () at eval.c:1624 #15 0x08069311 in ruby_run () at eval.c:1634 #16 0x08052474 in main (argc=Cannot access memory at address 0x2 ) at main.c:46 Looking in coverage_mark_caller () at rcovrt.c:81 for (; frame && (n = frame->node); frame = frame->prev) { if (frame->prev && frame->prev->last_func) { if (frame->prev->node == n) continue; coverage_increase_counter_uncached(n->nd_file, nd_line(n) - 1, 1); } else { -line 81--> coverage_increase_counter_uncached(n->nd_file, nd_line(n) - 1, 1); } break; } if I print out n, it's value is (NODE *) 0x2 If I print frame the value is (struct FRAME *) 0x0 p *ruby_frame $8 = { self = 3082662880, argc = 0, last_func = 23425, orig_func = 23425, last_class = 3082634620, prev = 0xbfd285e4, tmp = 0x0, node = 0xb7be8a2c, iter = 2, flags = 0, uniq = 15318 } John Carter Phone : (64)(3) 358 6639 Tait Electronics Fax : (64)(3) 359 4632 PO Box 1645 Christchurch Email : john.carter@tait.co.nz New Zealand ...even the weariest river winds somewhere safe to sea.