http://www.osn.de/user/finzel/html/sgxTools.html
sgxTools는 Tcl 스크립트 오류 체크 툴로써 Tcl 스크립트의 잠재적인 버그를 동적으로 체크하는 대단히 유용한 툴입니다. Windows/Unix/Linux에서 사용 가능하며, Tcl/Tk8.0 이상에서 사용가능 합니다. sgxTools는 아래의 툴로 구성됩니다.
- sgxXP - 코드 프로파일
- sgxCT - 코드 트레이스
- sgxRSM - 리소스 측정
- sgxTVC - 변수 정합성 테스트
- sgxDbg - 디버그 프로시져
sgxCP
Tcl 스크립트를 프로파일하는 툴 입니다. 아래의 예는 demo.tcl 파일을 프로파일합니다.
::sgxCP::init
source demo.tcl
puts stderr [::sgxCP::print]
프로파일의 결과는 프로시져 마다 출력 됩니다. 프로시져의 콜(call) 횟수와 실행시간이 표시됩니다. 마지막으로 한번도 사용되지 않은 프로시져도 표시 해줍니다.
Profiling information for ::pong
-------------------------
Total calls: 3
Caller distribution:
3 ::ping
Compile time: 14166
Total runtime: 43629
Average runtime: 14543
Runtime StDev: 367
Runtime cov(%): 2.5
Total descendant time: 42594
Average descendant time: 14198
Descendants:
3 ::ping
Never used: 1 proc(s)
::pongping
sgxCT
Tcl 스크립트를 트레이스를 하기위한 툴입니다. 아래의 예는 demo.tcl 파일을 트레이스 합니다. 정규표현을 사용하여, 트레이스하고 싶은 프로시져를 정의하는것도 가능합니다.
::sgxCT::Init {p.*g} stderr
source demo.tcl
::sgxCT::Summary {p.*g}
트레이스의 결과로 프로시져의 콜과 리턴의 관계가 출력됩니다. 프로시져의 네스팅(nesting) 레벨, 인자, 리턴값이 표시됩니다. Summary는 프로시져의 콜횟수와, 호출의 관계가 표시됩니다.
# Call Trace regexp: 'p.*g'
mode level proc args/return
call 1 ::pingpong
call 2 ::ping 1
call 3 ::pong 1
call 4 ::ping 2
call 5 ::pong 2
call 6 ::ping 3
call 7 ::pong 3
call 8 ::ping 4
BANG 4
return 8 ::ping BANG
return 7 ::pong 3
return 6 ::ping 3
return 5 ::pong 2
return 4 ::ping 2
return 3 ::pong 1
return 2 ::ping 1
return 1 ::pingpong 1
# Call Trace Summary regexp: 'p.*g'
# called:
4 ::ping
1 ::pingpong
3 ::pong
# caller:
4 ::ping
1 ::pingpong
3 ::pong
# callings:
1 ::ping ::BANG
3 ::ping ::pong
1 ::pingpong ::ping
3 ::pong ::ping
1 ./test/test_ct.dat ::pingpong
# unused:
0 ::pongping
sgxRSM
Tcl 스크립트의 리소스를 측정하는 툴입니다. 아래의 예는 demo.tcl을 측정합니다.
::sgxRSM::_Files_ demo.tcl
측정 결과는, 커맨드와 프로시져 콜 횟수가 프로셔져 마다 출력됩니다. 마지막의 summary로는 커맨드의 프로시져 콜 총 횟수가 표시됩니다.
# ------------------------------------------------ Proc : test_tvc FPM : 3 FRPM : 1 FC : 22 LOC : 142 eLOC : 57 SCUM : 149.1% Calls: 62 3 append 1 array 3 break 1 expr 1 for 3 foreach 3 global 1 if 2 incr 1 info 3 lappend 4 list 1 regexp 1 regsub 1 return 1 scan 16 set 1 string 7 subst 3 unset 2 upvar 3 variable # ------------------------------------------------
sgxTVC
Tcl 스크립트에 사용된 변수의 정합성을 테스트하는 툴입니다. 아래의 예는 demo.tcl 파일을 테스트합니다.
::sgxTVC::_Files_ demo.tcl
테스트 결과는, 에러와 경고가 있는 변수의 리스트가 출력됩니다.
test_tvc error undef_14 variable undefined used by incr test_tvc error undef_15 variable undefined used by unset test_tvc error undef_16 variable undefined used by array test_tvc error undef_17 variable undefined used by info test_tvc warning append bad style variable test_tvc warning lappend bad style variable test_tvc warning incr bad style variable test_tvc error unused_01 variable undefined used by append test_tvc error unused_02 variable undefined used by lappend test_tvc error unused_00 argument unused test_tvc error proc argument unused test_tvc warning proc bad style argument test_tvc error append variable unused test_tvc warning append bad style variable test_tvc error lappend variable unused test_tvc warning lappend bad style variable test_tvc warning set bad style variable test_tvc error incr variable unused test_tvc warning incr bad style variable
Home
Wiki
Archive Center
Bug Tracker
E-Mail

