Posted to tcl by dgp at Tue Apr 09 16:55:31 GMT 2013view pretty

oo::object create foo
oo::objdefine foo {
    method target {} {puts Hit!}
    forward bar my target
}
proc harness {} {
    foo target
    foo bar
}
proc handle {cmd args} {
    puts "Command [lindex $cmd 0] resolves to:"
    puts "\t'[uplevel 1 [list ::namespace which -command [lindex $cmd 0]]]'"
    puts "\t\tResolved at level [uplevel 1 {info level}]"
}
trace add execution harness enterstep handle
harness


Output:

Command foo resolves to:
        '::foo'
                Resolved at level 1
Command puts resolves to:
        '::puts'
                Resolved at level 2
Hit!
Command foo resolves to:
        '::foo'
                Resolved at level 1
call NREO forward: 'my'
Command my resolves to:
        ''
                Resolved at level 1
Command puts resolves to:
        '::puts'
                Resolved at level 2
Hit!

Comments

Posted by dgp at Tue Apr 09 16:58:14 GMT 2013 [text] [code]

The "Call NREO forward" line is C code debugging. Announces the call to TclNREvalObjv() in the routine InvokeForwardMethod().