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=<value optimized out>, node=0xb7bd9450, self=3082662880, mid=23425, klass=3082634620) at rcovrt.c:154
#2  0x0805ded5 in rb_call0 (klass=<value optimized out>, recv=3082662880, id=23425, oid=23425, argc=0, argv=0x0, body=0xb7bd948c, flags=<value optimized out>) 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=<value optimized out>) at eval.c:3443
#5  0x0805d3df in rb_eval (self=3082629180, n=<value optimized out>) at eval.c:3173
#6  0x0805e344 in rb_call0 (klass=<value optimized out>, recv=3082629180, id=11049, oid=11049, argc=0, argv=0x8, body=0xb7be8ae0, flags=<value optimized out>) 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=<value optimized out>) at eval.c:3505
#10 0x0805e344 in rb_call0 (klass=<value optimized out>, recv=3082629180, id=11049, oid=11049, argc=0, argv=0x0, body=0xb7be5c78, flags=<value optimized out>) 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=<value optimized out>) 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.