2012-04-10 3 views

답변

7

아니,하지만이처럼 어딘가에 source 'D 파일을 추적하기 위해 source 명령 자체를 재정의 할 수

rename source __real_source 
proc source args { 
    global sourced 
    lappend sourced $args 
    uplevel 1 [linsert $args 0 __real_source] 
} 

업데이트 :source의 취약성에 관한 DONAL의 의견에 확대 명령을 실행 추적을 설정하는 방법은 다음과 같습니다.

proc register_sourced {cmd args} { 
    global sourced 
    lappend sourced [lindex $cmd end] 
} 
trace add execution source leave register_sourced 
+1

'uplevel' 명령에서'__real_source'를 실행하면 안됩니까? – bmk

+0

8.6을 사용하면 다음과 같이 쓸 수 있습니다 :'proc source args {lappend :: sourced [lindex $ args end]; tailcall __real_source {*} $ args}' –

+0

감사합니다. @bmk, 타이핑 중에 이것을 간과했습니다. – kostix

관련 문제