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

  1. oo::object create foo
  2. oo::objdefine foo {
  3. method target {} {puts Hit!}
  4. forward bar my target
  5. }
  6. proc harness {} {
  7. foo target
  8. foo bar
  9. }
  10. proc handle {cmd args} {
  11. puts "Command [lindex $cmd 0] resolves to:"
  12. puts "\t'[uplevel 1 [list ::namespace which -command [lindex $cmd 0]]]'"
  13. puts "\t\tResolved at level [uplevel 1 {info level}]"
  14. }
  15. trace add execution harness enterstep handle
  16. harness
  17.  
  18.  
  19. Output:
  20.  
  21. Command foo resolves to:
  22. '::foo'
  23. Resolved at level 1
  24. Command puts resolves to:
  25. '::puts'
  26. Resolved at level 2
  27. Hit!
  28. Command foo resolves to:
  29. '::foo'
  30. Resolved at level 1
  31. call NREO forward: 'my'
  32. Command my resolves to:
  33. ''
  34. Resolved at level 1
  35. Command puts resolves to:
  36. '::puts'
  37. Resolved at level 2
  38. Hit!
  39.  

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().