자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Q.

델파이 XE8에서 쓰래드 디버깅 기능 향상된 것이 있나요?


A.

델파이7~XE8 주요기능 따라잡기의 새로운 디버그 기능들 중 쓰레드 관련 기능을 안내해 드립니다.

기타 IDE, VCL/RTL, 언어/컴파일러, 디버그 기능들은 아래 페이지에서 확인해 보세요.

- http://www.devgear.co.kr/products/rad-studio/featurelist/



쓰레드에서 데드락 발생 시 그에대한 자세한 정보를 찾아볼 수 있습니다.

□ Wait Chain Traversal

 

Wait Chain Traversal(WCT)은 프로젝트의 어떤 쓰레드에서 데드락이 발생했을 때 그에 대한 자세한 정보를 찾아볼 수 있게 해줍니다. 쓰레드들 사이에 데드락이 발생했을 때, Thread Status에 새로 추가된 Wait Chain 컬럼에 각 쓰레드들 사이의 상호 블로킹 상태를 표시해줍니다. 
→ 자세히 보기:http://docwiki.embarcadero.com/RADStudio/XE8/en/Wait_Chain_Traversal_Overview


쓰레드 이름을 지정해 쓰레드 디버깅을 더 용이하게 할수 있습니다.

NameThreadForDebugging

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

쓰레드 디버깅이 용이하도록 TThread 클래스에 NameThreadForDebugging 메소드가 추가되었으며, 이를 이용하여 IDE의 Thread View에 현재 디버깅중인 각 쓰레드들의 이름을 볼 수 있습니다.

□ 쓰레드의 임시 이름 지정

 

디버깅 중에도 Thread Status Window의 특정 쓰레드에 임시로 이름을 지정할 수 있습니다. 
→ 자세히 보기:
http://docwiki.embarcadero.com/Libraries/XE8/en/System.Classes.TThread.NameThreadForDebugging

쓰레드를 지정해 중단점을 걸어 특정 쓰레드에서 디버깅 할 수 있습니다.

□ 쓰레드 지정 중단점(BreakPoint)

 

멀티 쓰레드 개발 시 중단점을 찍으면 여러 쓰레드에 중단점이 걸려 IDE가 먹통(Hang)이 될 수 있습니다. 이런 경우 쓰레드를 선택 해 중단점을 찍고 디버깅 할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Breakpoint_Properties

원하는 쓰레드만 디버깅 하기 위해 쓰레드를 일시적으로 얼리고(Freeze) 녹일(Thaw) 수 있습니다.

□ 쓰레드 Freeze/Thaw

 

특정 쓰레드만 디버깅하기 위한 Thread Specific Breakpoint 기능이 추가되었습니다. 
→ 자세히 보기:http://docwiki.embarcadero.com/RADStudio/XE8/en/Freezing_and_Thawing_Threads_in_the_Debugger


번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 19793
공지 유용한 관련 사이트 관리자2 2014.03.20 58767
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102323
839 Konopka XE8에서 사용 여부.. MrAJ 2018.12.12 82
838 BluetoothLE에서 스캔값이 들어오지 않습니다. [2] file 철인28호 2018.12.13 178
837 10.3의 Database Desktop 폴더 사용가능한지요? 날라리아 2018.12.13 256
836 10.3 Rio 버젼에서 Code Insight 기능 오류현상 [1] sihwan 2018.12.14 423
835 10.3 TADOStoreProc.Parameters.FindParam('MEMBER_ID').Value 시 오류 [1] 파란김치 2018.12.14 122
834 도쿄에서의 문제 RIO에서 해결된 부분과 아닌부분(앱제작 시) [4] 지병철 2018.12.14 566
833 RIS TWebBrowser 버그 [3] 아가머하노 2018.12.17 298
832 10.3 RIO 안드로이드 플랫폼 컴파일 시 string.h에서 "functions that differ only..." 오류가 발생해 컴파일되지 않습니다. [5] file 험프리 2018.12.17 205
831 10.3 Rio 멀티디바이스 앱 컴파일 에러메시지 [2] 서준아빠 2018.12.17 201
830 디버깅 시 툴 이동 오사씨 2018.12.17 130
829 note component error file 김진석 2018.12.18 191
828 구글플레이에 올릴려면 리오로 apk를 생성하면 된가요? [2] 화이부동 2018.12.19 121
827 10.3으로 컴파일하면 스플래쉬에서 멈추고 끝납니다. [3] file 화이부동 2018.12.19 216
826 Assertion failure .. DBKIMPL.CPP at line 4017 bingry 2018.12.20 152
825 헥사값 전송할때 문제가 있어 문의 드립니다 김재휘 2018.12.20 204
824 델파이 Rio 버젼 FramedScrollBox 세로스크롤 버그문제 문의합니다. file silkroad99 2018.12.20 194
823 Delphi 10.3 리오 rest 컴포넌트 오류 [4] 호호 2018.12.22 333
822 델파이 Note 컴퍼넌트 오류 [1] file 김진석 2018.12.23 198
821 Delphi 10.3 Rio 에서 bpl 프로젝트 설치 문제. [2] 대마왕 2018.12.24 683
820 문자열 관련 [1] 구뚜루 2018.12.25 109