Delphi XE: Delphi 7 이후의 새로운디버그기능들 Nick Hodges, 박지훈. 임프 2010 년 9 월 Americas Headquarters EMEA Headquarters Devgear 100 California Street, 12th York House 서울특별시반포 1 동 743-14 Floor 18 York Road 4 층 데브기어 San Francisco, California Maidenhead, Berkshire (T) 02.595. 4288 94111 SL6 1SF, United Kingdom
Name Thread- ForDebugging 쓰레드디버깅이용이하도록 TThread 클래스에 NameThreadForDebugging 메소드가추가되었으며, 이를이용하여 IDE 의 Thread View 에현재디버깅중인 각쓰레드들의이름을볼수있습니다. 쓰레드에임시 이름지정가능 코드에서 NameThreadForDebugging 메소드로명시적으로쓰레드이름을 지정해주는방법외에도, 델파이 XE 에서는디버깅진행중에특정쓰레드에 임시이름을지정할수있습니다. Thread Specific Breakpoint 특정쓰레드만디버깅하기위한 Thread Specific Breakpoint 기능이 추가되었습니다. 쓰레드 Freeze/Thaw 각쓰레드를일시적으로얼리거나 (Freeze) 다시녹일 (Thaw) 수있어원하는 쓰레드의디버깅에집중할수있습니다. Embarcadero Technologies White Paper
디버그 비주얼라이저 TDateTime, TStringList 등기존에는디버거에서그값을추적할수없었던 타입들을볼수있게해주는 Debug Visualizer 가추가되었습니다. 이제 TDateTime, TStringList 변수의값을디버깅상태에서볼수있게되었습니다. 개발자가직접새로운타입을위한비주얼라이저를개발하여등록할수도 있습니다. 예외 다이얼로그 개선 델파이 7 이하버전에서는실행중예외가발생했을경우무조건 IDE 에서실행이멈추었지만 (break), 이제는 Break 와 Continue 를선택할수있게되어 IDE 에서해당라인을찾아가지않고곧바로실행을계속하도록할수있게되었습니다. 또한다이얼로그아래쪽에있는 Ignore this exception type 옵션에체크를 하면 IDE 가해당타입의예외를무시하도록할수있습니다. Embarcadero Technologies White Paper - 3 -
Ignore non-user breakpoints Tools Options Debugger Options Embarcadero Debuggers 에 "Ignore non-user breakpoints" 옵션이추가되었습니다. 이옵션을선택하면개발자가설정하지않은브레이크포인트 (Non-user breakpoint) 로인한 IDE 일시정지를하지않습니다. Non-user breakpoint 는 DbgBreakPoint() API 함수호출에의해코딩으로지정된것으로, 흔히는 Windows OS 커널의버그로발생하며, 이런의도하지않은코드에의한브레이크포인트를무시할수있습니다. 또한델파이 XE 에서는 Non-user breakpoint 를만날경우 Event Log 윈도우에표시합니다. Run Without Debugging IDE 에서디버깅모드로프로젝트를실행하는 Run 이외에, 디버그모드가아닌일반실행모드로프로젝트를실행해주는 Run Without Debugging 명령이추가되었습니다. Run - Run Without Debugging 에서실행할수있으며, 툴바에도버튼으로등록되어있습니다. 예를들면, 서버-클라이언트로구성된프로젝트그룹에서서버와클라이언트프로젝트를서로연동테스트하려고할때아주편리합니다. Detach from Program Detach from Program 명령은실행중인프로그램에디버거를연결하여디버깅하는 Attach to Process 와는정반대로, 디버깅모드에서실행중이던 Embarcadero Technologies White Paper
프로젝트로부터디버깅을해제하고일반 모드로실행을계속하도록합니다. 펼쳐지는 Watch, Local Variables 델파이 7 까지는 Watch 나 Local Variables 윈도우에서디버그상태에서객체의 값을볼수는있었으나그멤버들로드릴 - 다운할수가없어디버그인스펙터를 써야했습니다. 델파이 2006 버전부터는 Watch 와 Local Variables 윈도우에서각객체의하위 멤버들의값들을드릴 - 다운하여살펴볼수있게되었습니다. 펼쳐지는 디버그툴팁 델파이 2006 이후버전부터는디버그툴팁에서객체의멤버들을계속드릴 - 다운하여그값들을살펴볼수있게되었습니다. Embarcadero Technologies White Paper - 5 -
또한 Ctrl 키를누르고있는동안이툴팁들이투명하게보이게되어, 툴팁을없애지않고도뒤의코드내용을볼수있게되었습니다. Wait Chain Traversal Wait Chain Traversal(WCT) 은프로젝트의어떤쓰레드에서데드락이발생했을때그에대한자세한정보를찾아볼수있게해줍니다. 쓰레드들사이에데드락이발생했을때, Thread Status 에새로추가된 Wait Chain 컬럼에각쓰레드들사이의상호블로킹상태를표시해줍니다. (WCT 기능은 Windows Vista 이상에서만사용가능하며, Wait Chain 컬럼도 Vista 이상에서만나타납니다 ) Watch 의 New Watch, Evaluate/ Modify 메뉴 Watch 윈도우에추가된객체의하위객체에서오른쪽클릭하여팝업메뉴에서 New Watch 를선택하면, 해당하위객체가 Watch 윈도우에추가됩니다. 또한, Evaluate/Modify 메뉴를선택하면해당객체에대한 Evaluate/Modify 창이떠서즉시값을변경해볼수있습니다. 기타추가된디버깅기능들 다음과같은새로운디버거기능들이추가되었습니다. 1. CPU 뷰가에디터탭의바깥에독립적으로열릴수있습니다. 2. 디스어셈블리창에 "Show Opcodes" 로컬메뉴항목이추가되었습니다. 3. 디스어셈블리창에 "Show Addresses" 로컬메뉴항목이 추가되었습니다. 4. Tools Options Debugger Options Event Log 에 "Scroll new events Embarcadero Technologies White Paper
into view" 옵션이추가되었습니다. 5. 툴바를커스터마이즈할때 "Notify on language exceptions" 버튼이추가되었습니다. 이버튼은개발자들이 Tools Options Debugger Options Embarcadero Debuggers Language Exceptions 페이지에있는 "Notify on Language Exceptions" 옵션을빠르게토글할수있게해줍니다. 6. Call Stack 뷰에서해당프레임이디버그정보를포함하고있는지보여주는이미지를보여줍니다. 7. Call Stack 뷰에서지정된스택프레임위치에서개발자들이브레이크포인트를설정할수있습니다. 8. Call Stack 뷰에서한항목을더블클릭하면자동으로로컬뷰를동기화해줍니다. 9. 에디터에서 CTRL-F5 핫키를치면현재라인에설정되어있는브레이크포인트를활성 / 비활성화해줍니다. 10. Project Options Debugger 다이얼로그에서델파이등모든프로젝트타입에대해 "Debug Source Path" 설정을지정할수있습니다. 이전에는이설정을델파이 Win32 에서는 Directories/Conditionals 페이지에서지정할수있었으나, 다른퍼스낼리티에서는불가능했습니다. 11. "Automatically close files implicitly opened while debugging" 옵션설정에 CPU 뷰도적용되게되었습니다. Embarcadero Technologies Inc. 는애플리케이션개발자및데이터베이스전문가가자신이선택한환경에서소프트웨어애플리케이션을설계, 빌드및실행하는도구를사용할수있도록합니다. 전세계 3 백만이상의커뮤니티와 Fortune 지선정 100 대기업중 90 개기업이 Embarcadero 의 CodeGear 및 DatabaseGear 제품군을기반으로하여생산성을향상시키고개방적인협업및자유로운혁신을추구하고있습니다. Embarcadero 는 1993 년에설립되어캘리포니아샌프란시스코에본사가있으며전세계에사무소를두고있습니다. Embarcadero 의온라인주소는 www.embarcadero.com 입니다. 데브기어는미국 Embarcadero Technologies Inc. 와기존의코드기어한국지사의협력으로전략적으로설립된엠바카데로솔루션전문공급기업입니다. 데브기어는 Delphi, C++Builder, JBuilder, Delphi Prism 등개발툴제품들과 ER/Studio, PowerSQL, DB Artisan, EA/Studio 등의데이터베이스툴제품들에대한한국시장에공급은물론기술지원및교육등의기술서비스를제공합니다. 데브기어웹사이트는 http://www.devgear.co.kr/ 이며제품에대한문의는 ask@embarcadero.kr 로하면됩니다. Embarcadero Technologies White Paper - 7 -