사용환경
————————————————————
OS: Windows 계열
웹브라우저: MS Internet Explorer 거의 모든 버전
스크립트: JavaScript, VBScript 등
오랜만에 자작 프로그램(iDebugX) 올려봅니다.
프로젝트에 JSP로 개발하면서 Server-side와 Client-side의 디버깅 컨트롤을 각각 만들었습니다.
JSP용 서버 사이드는 정리되면 올리도록 하지요..
클라이언트 사이드 컨트롤은 개발언어에 관계없이 사용할 수 있습니다.
뭐하는데 사용하는 넘인가 하면요…
개발시 웹페이지에서 변수값 등을 확인하기 위해서 alert() 함수를 많이 사용할 겁니다.
사용 후 다시 지워야하고, 나중에 버그 발생시 값 확인하려면 또다시 alert()를 사용해야 하는 경우가 많을 겁니다.
iDebugX는 OutputDebugString() API를 호출하므로 alert()처럼 사용자에게 직접적으로 보여주지는 않습니다.
디버그 뷰어를 실행해서만 볼 수 있습니다.
예를 봅시다..(이 예제를 테스트하기 위해서는 iDebug.ocx를 윈도우에 등록해야 됩니다. 방법은 아래 참조)
debug.js (javascript)
<script type=”text/javascript”>
<!–
// HTML 페이지에 디버그 컨트롤 삽입
function SetDebugMode()
{
var iDebug = “<OBJECT id=idbg classid=’clsid:A7E78F01-4566-4A90-87EC-01EEF2D1344A’><param name=’header’ value=’::’></<param name=’UseDialogBox’ value=false></OBJECT>”;
document.writeln(iDebug);
}
SetDebugMode();
// 디버그 컨트롤 설치 여부 검사
function Installed_iDebugX()
{
try
{
return (typeof(document.all(“idbg”))!=”undefined” & document.all(“idbg”).object != null & idbg.installed());
}
catch(e)
{
}
}// 디버그 메시지 출력
function OutputDebugString(msg)
{
if (Installed_iDebugX())
idbg.OutputDebugString(msg);
}
// 디버그 메시지 대화상자 표시
function ShowDebugString(msg)
{
if (Installed_iDebugX())
idbg.ShowDebugString(msg);
}
</script>
–>
사용 예제(javascript)
<SCRIPT language=’javascript’ type=’text/javascript’ src=’./debug.js’></SCRIPT>
<SCRIPT language=’javascript’>
….
….
OutputDebugString(“변수 user_id:” + user_id);
….
….
</SCRIPT>
</HTML>
위 예제처럼 하면 디버그 뷰어에 “::변수 user_id:test”라는 문자열이 출력됩니다.(user_id가 test일 경우)
alert()처럼 스크립트 실행을 중단시키지 않으며 사용자(고객)는 디버그 메시지를 볼 수 없습니다.
사용자에게는 iDebug.ocx를 배포할 필요는 없습니다.
iDebugX는 iDebugX가 윈도우에 등록된 클라이언트에서만 동작됩니다.
메소드
——————————————————————-
About(): 도움말 표시
OutputDebugString(msg: string): 디버그 메시지 출력(디버그뷰어에)
ShowDebugString(msg: string): 디버그 메시지 출력(대화상자로)
속성
——————————————————————-
header: 디버그 메시지 앞에 출력할 문자열
UseDialogBox: OutputDebugString()를 ShowDebugString()와 같은 동작을 하게 할 것인지의 여부
파라미터
——————————————————————-
copyright: copyright 표시
header, UseDialogBox: 속성 참고
———————————
Server-Side (PHP에서 사용)
———————————
<php?
$user = ‘guest’;
$idbg = new COM(‘iDebug.iDebugX’);
$idbg->header = “::”;
$idbg->OutputDebugString(‘변수 $user=’ . $user);
?>
PHP용은 ShowDebugString(), About()은 사용할 수 없습니다.
참고: 여러 프로그램들이 OutputDebugString() API를 사용하기 때문에 디버그 뷰어에 자신이 호출하지 않은 문자열이 나타날 수도 있습니다. 이때 디버그 뷰어에서 필터 기능을 사용하면 자신의 메시지만 볼 수 있습니다.
디버그 뷰어 다운로드 – http://download.sysinternals.com/Files/DebugView.zip
iDebug.ocx 윈도우에 등록하는 법 – cmd에서 “regsvr32 C: estiDebug.ocx” 입력 후 엔터
iDebug.ocx 윈도우에 등록 해제 하는 법 – cmd에서 “regsvr32 /u C: estiDebug.ocx” 입력 후 엔터
디버그 뷰어가 다운로드 되지 않아요. 주소가 바뀐것 가타요
링크 변경했습니다.
감사드립니다. ^^ 이제서야 확인했네요. 그런데 확인 전에 다운로드를 받았어요. ^^