# source this script to generate a trace for all mk::* calls on "mktrace.log" namespace eval mk { ::set pfx "" ::set log [open mktrace.log w] foreach x {select file row set get channel loop cursor view} { rename $x _$x proc $x {args} [format { ::set opfx $::mk::pfx puts $::mk::log "*$::mk::pfx mk::%s [string range $args 0 199]" flush $::mk::log append ::mk::pfx " " ::set rc [catch {uplevel mk::_%s $args} err] ::set ::mk::pfx $opfx puts $::mk::log " $::mk::pfx mk::%s -> [string range [list $rc $err] 0 199]" flush $::mk::log return -code $rc $err } $x $x $x] } } rename message _message proc message {args} { puts $::mk::log ">>> $args" uplevel _message $args #array unset ::mk4vfs::cache * } if 0 { rename __quit ___quit proc __quit {} { ::puts $::mk::log QUIT1 ::flush $::mk::log #::mk::file commit mk4vfs1 #::vfs::mk4::Unmount mk4vfs1 alphatk #::puts $::mk::log QUIT1a #::flush $::mk::log ::___quit ::puts $::mk::log "QUIT2 logfile=$::mk::log" ::puts $::mk::log [file channels] ::puts $::mk::log [after info] ::flush $::mk::log ::mk::file open ::mk::file commit mk4vfs1 # ::vfs::mk4::Unmount mk4vfs1 alphatk # ::mk::file open } }