   *  call-seq:
 - *     set_trace_func(proc)    -> proc
 - *     set_trace_func(nil)     -> nil
-+ *     set_trace_func(proc)        => proc
-+ *     set_trace_func(proc, mask)  => proc
-+ *     set_trace_func(nil)         => nil
++ *     set_trace_func(proc)        -> proc
++ *     set_trace_func(proc, mask)  -> proc
++ *     set_trace_func(nil)         -> nil
   *
   *  Establishes _proc_ as the handler for tracing, or disables
   *  tracing if the parameter is +nil+. _proc_ takes up

===================================================================
--- vm.c	(revision 28684)
+++ vm.c	(working copy)
@@ -691,6 +691,7 @@
     if (RUBY_VM_NORMAL_ISEQ_P(iseq) && iseq->insn_info_size > 0) {
 	rb_num_t i;
 	size_t pos = cfp->pc - cfp->iseq->iseq_encoded;
+	line_no = iseq->insn_info_table[0].line_no;
 
 	if (iseq->insn_info_table[0].position == pos) goto found;
 	for (i = 1; i < iseq->insn_info_size; i++) {
@@ -1164,8 +1165,20 @@
 
 	while (th->cfp->pc == 0 || th->cfp->iseq == 0) {

+
+/*
+ *  call-seq:
+ *     iseq.disasm_nochildren   -> string
+ *
+ *  Returns a string disassembly of an instruction sequence, and
+ *  doesn't include instruction sequences for any associated catch
