Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

Recommended Posts

<< 위로 이동 (최신 버전 포함 모든 버전)

RAD 스튜디오 2010~6.0 "새 기능 한글 요약본: 디버거" 입니다.
모든 새 기능,  강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New 목록 (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다.

2010~6.0 - 디버거 관련 주요 업데이트 요약


Watch 창과 Local Variables 창

오브젝트의 펼쳐서 하위 멤버의 값을 파악

81-300x149.png
Watch 창과 Local Variables 창에서 오브젝트 뿐만 아니라 그 하위 하위 멤버들의 값까지 펼쳐 볼 수 있다.
(델파이 7까지는 Watch 창과 Local Variables 창에서 오브젝트의 값만 볼 수 있고, 하위 멤버의 값을 보려면 디버그 인스펙터가 필요했음)

Watch 창에서 새 New Watch 창 열기와 값 변경/평가 하기 (컨텍스트 메뉴)

84-300x169.png

  • Evaluate/Modify: 하위 오브젝트도 선택하여 값을 변경하거나 평가해 볼 수 있다.
  • New Watch: 선택된 오브젝트가 Watch 창에 추가된다.

디버그 툴팁

오브젝트의 펼쳐서 하위 멤버의 값을 파악

82-300x166.png
디버그 툴팁에서 오브젝트 뿐만 아니라 그 하위 하위 멤버들의 값까지 펼쳐 볼 수 있다.

툴팁을 임시로 투명하게 전환하기 (가려진 코드 보기)

Ctrl 키를 누르고 있는 동안은 툴팁이 투명해진다. 가려진 코드를 읽기 위해 툴팁을 없애지 않아도 된다.

쓰레드 디버깅 

코드 작성 시, "NameThreadForDebugging" 메소드로 코드에서 쓰레드 이름 지정

procedure TSortThread.Execute;
begin
  NameThreadForDebugging(AnsiString(ClassName));
  Sort(Slice(FSortArrayˆ, FSize));
end;

Thread View에서 현재 디버깅중인 각 쓰레드들의 이름을 볼 수 있도록 TThread 클래스에 NameThreadForDebugging 메소드가 추가되었다.

Thread Status 창에 쓰레드에 임시 이름을 지정

73-300x184.png

중단점(BreakPoint) 지정 시, 특정 쓰레드만 지정 하기

74-300x181.png

Thread Status 창에 특정 쓰레드만 얼리기(Freeze)/녹이기(Thaw)

75-300x171.png

TDateTime, TStringList 변수의 값 파악

76-300x85.png
기존에는 디버거에서 그 값을 추적할 수 없었던 TDateTime, TStringList 등 타입도 이제 값을 파악할 수 있다.

디버깅 중 예외(Exception)가 발생한 경우, 중단/지속 선택

77-300x86.png

  • 중단(Break)과 지속(Continue) 중 선택할 수 있다.
  • “Ignore this exception type” 옵션에 체크를 하면 해당 예외 타입은 중단 없기 디버깅을 지속한다.

개발자가 설정하지 않은 중단점 무시 옵션

78-300x72.png

Tools > Options > Debugger Options > Embarcadero Debuggers에서 “Ignore non-user breakpoints” 옵션을 선택하면 개발자가 설정하지 않은 중단점*은 반영되지 않는다.
(델파이 XE 부터는 non-user breakpoint를 만날 경우 Event Log 윈도우에 표시된다) 

* Non-user breakpoint는 DbgBreakPoint() API 함수 호출에 의해 코딩으로 지정된 것으로, 흔히는 Windows OS커널의 버그로 발생한다.

IDE에서 디버깅하지 않고 실행(Run Without Debugging)

run-2.png

IDE에서 프로젝트를 실행할 때, 디버깅을 진행하는 일반 디버그 모드 실행(Run) 명령 이외에, 디버깅하지 않고 실행(Run Without Debugging)을  명령을 실행할 수 있다.

(유용하게 사용하는 예)
프로젝트 그룹에 서버 프로젝트와 클라이언트 프로젝트가 모두 있을 경우,  서버 프로젝트를 먼저 디버깅하지 않고 실행(Run Without Debugging)으로 실행하고, 이어서 클라이언트 프로젝트를 디버깅을 진행하는 일반 실행(Run)을 할 수 있다. 반대로 클라이언트 프로젝트를 먼저 디버깅하지 않고 실행하고 서버를 디버깅 할 수도 있다. (주의! 일반 디버그 모드 실행(Run)을 시작한 상태에서는 다른 프로젝트를 디버깅하지 않고 실행(Run Without Debugging)로 추가 실행할 수 없다)

프로세스에서 디버깅 해제/추가

  • Detach from Program:  디버깅 모드로 실행 중인 프로그램에서 디버깅을 해제하여 일반 모드로 실행
  • Attach to Process: 명령은 실행 중인 프로그램에 디버거를 연결하여 디버깅

쓰레드에서 데드락 정보 파악 (Wait Chain Traversal, WCT)

83-300x66.png

데드락(Deadlock) 발생 시, Thread Status 창Wait Chain 열에 각 쓰레드 간의 상호 블로킹 정보를가 표시된다.

기타 추가된 디버그 기능

  • 이벤트 로그 옵션 추가 ( Tools> Options>Debugger> Options> Event Log )
    • Prevent scrolling of the event log: 이벤트 로그가 새 이벤트를 잡아서 보여주는 것을 방지
    • Scroll new events into view
  • CPU 창 
    • DisassemblyCPU Stack, Registers 등 CPU 창의 각 화면이 도킹 타입이어서 떼어내어 독립된 창에서 볼 수 있고 IDE 어느 곳에든 붙일 수 있다.
    • 디버깅이 종료되면 CPU 창도 닫히도록 하려면, “Automatically close files implicitly opened while debugging” 옵션에서 CPU 창을 포함하면 된다.
    • Disassembly 창에 새 옵션으로 "Show Opcodes", "Show Addresses"이 추가되었다.
  • Call Stack 창
    • 특정 프레임에서 중단점(Breakpoint)을 지정할 수 있다.
    • 해당 프레임이 디버그 정보를 포함하고 있는지 여부를 표시한다.
    • 한 항목을 더블 클릭하면 자동으로 로컬 뷰를 동기화한다.
  • 중단점(Breakpoint) 토글 핫키: 코드 에디터에서 Ctrl+F5 를 치면 현재 커서가 위치한 줄에 중단점(Breakpoint)을 활성/비활성화한다.
  • 디버그 소스 경로 지정: Project > Options > Debugger 에서 이제 모든 프로젝트 타입에 대해 “Debug Source Path” 를 지정할 수 있다. (예전에는 Directories/Conditionals에서 Win32만 지정 가능 했다.)
  • “Notify on language exceptions” 명령
    • View> Toolbars> Customize> Categories> Run 에서 “Notify on language exceptions” 아이콘을 끌어서 툴바에 놓고 편하게 사용할 수 있다.
    • 이제 “Notify on Language Exceptions” 명령을 실행하기 위해 매번 Tools > Options > Debugger Options > Embarcadero Debuggers | Language Exceptions 을 열지 않아도 된다.
  • 투명한 디버거 툴팁Ctrl 키를 누르고 있으면 디버거 툴팁이 투명해져서 뒤에 가려졌던 코드가 보인다. 

 


View full RAD 스튜디오 버전별 신기능

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.