0
我想在tcl中創建一個跟蹤函數。函數將列出所有被調用的procs/nested調用和那裏的參數。下面是腳本無法放入tcl腳本
rename proc _proc
proc proc {nm params body} {
_proc $nm $params $body
trace add execution $nm enter [list track_entry $nm $params]
trace add execution $nm leave [list track_leave $nm]
}
_proc track_entry {nm params real args} {
puts "Enter proc $nm"
foreach formal $params actual [lrange $real 1 end] {
append p " [lindex $formal 0]=$actual,"
}
puts "Parameters:$p and body"
}
_proc track_leave {nm args} {
puts "Exit proc $nm"
}
proc test1 { param1 param2 } {
puts 「parameters are $param1 and $param2」
test2 value1
}
proc test2 { value} {
puts 「value is $value」
}
我得到以下輸出
test1 arg1 arg2
Enter proc test1
Parameters: param1=arg1, param2=arg2, and body
Exit proc test1
wrong # args: should be "puts ?-nonewline? ?channelId? string"
任何線索,爲什麼它是在puts
爲什麼你在最後兩個'proc's引號(''「'')而不是簡單引號('」「')中引用了? – Jerry 2014-09-22 07:38:45