MDSTECH
TRACE32
TRACE32 Solution
TRACE32 Trace Solution
TRACE32 More Product
TRACE32 Software Solution
Why TRACE32?
교육신청
정규교육
교육과정 안내
교육장 안내
교육설문
자료실
TRACE32 소프트웨어
TRACE32 매뉴얼
iTSP
TRACE32 영상
인증서
고객지원
뉴스레터
Q&A
FAQ
원격지원
검색창
검색버튼
회원가입
로그인
TRACE32
TRACE32 Solution
TRACE32 Trace Solution
TRACE32 More Product
TRACE32 Software Solution
Why TRACE32?
교육신청
정규교육
교육과정 안내
교육장 안내
교육설문
자료실
TRACE32 소프트웨어
TRACE32 매뉴얼
iTSP
TRACE32 영상
인증서
고객 지원
뉴스레터
Q&A
FAQ
원격지원
사이트맵 보기
PowerGDB user Guide 문서 원본 보기
←
PowerGDB user Guide
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게만 가능합니다:
사용자
문서의 원본을 보거나 복사할 수 있습니다:
<p> </p> <h2><strong><span style="font-family: malgun; font-size: large;">Overview</span></strong></h2> <p><span style="font-family: malgun; font-size: large;">본 자료는 Software Debugging Solution인 PowerGDB를 소개하고 간단한 사용방법을 정리한 문서입니다.</span></p> <p><span style="font-family: malgun; font-size: large;">Linux 기반의 application을 디버깅할 수 있는 PowerGDB는 JTAG port와 같은 별도의 HW port가 필요없으며, Hardware Debugger를 사용하지 않습니다.</span></p> <p> </p> <h3><strong><span style="font-family: malgun; font-size: large;">사용 환경</span></strong></h3> <p><span style="font-family: malgun; font-size: large;">PowerGDB를 사용할 수 있는 환경은 다음과 같습니다.</span></p> <p><span style="font-family: malgun; font-size: large;">Linux 기반의 application을 디버깅하는 Software Debugging solution이기 때문에 Linux 환경은 대부분 지원이 가능합니다.</span></p> <p> </p> <div> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="235" valign="top"><span style="font-family: malgun; font-size: large;"> CPU </span></td> <td width="304" valign="top"><span style="font-family: malgun; font-size: large;"> ARM / x86 </span></td> </tr> <tr> <td width="235" valign="top"><span style="font-family: malgun; font-size: large;"> Target OS </span></td> <td width="304" valign="top"><span style="font-family: malgun; font-size: large;"> Linux, Android, Tizen, WebOS </span></td> </tr> <tr> <td width="235" valign="top"><span style="font-family: malgun; font-size: large;"> TRACE32 <strong>PowerView</strong> version </span></td> <td width="304" valign="top"><span style="font-family: malgun; font-size: large;"> 2015년 이상 </span></td> </tr> </tbody> </table> </div> <p> </p> <h2><strong><span style="font-family: malgun; font-size: large;">PowerGDB 설정 및 실행</span></strong></h2> <p><span style="font-family: malgun; font-size: large;">PowerGDB를 효율적으로 사용하기 위해 PGDB(PowerGDB) Package를 활용합니다.</span></p> <p> </p> <h3><strong><span style="font-family: malgun; font-size: large;">PGDB 설정</span></strong></h3> <p><span style="font-family: malgun; font-size: large;">1) PGDB package는 PowerGDB 효율적으로 사용하기 위한 환경이며, Linux application 디버깅 환경을 단순화 시켜줍니다. 또한 여러 환경을 하나의 디렉토리에서 사용하기 때문에 관리가 용이합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432885861.jpg" alt="" /></p> <p> </p> <p><span style="font-family: malgun; font-size: large;">2) PGDB를 실행하기 위해서는 C:\T32\PGDB 내에 link 파일을 이용하여 실행합니다. ARM을 기준으로 실행하려면 PwerGDB ARM link파일을 실행하시면 됩니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432885875.jpg" alt="" /></p> <p> </p> <p><span style="font-family: malgun; font-size: large;">3) 해당 link 파일을 실행하면 PowerGDB의 GUI인 TRACE32 Powerview를 실행합니다. 이후 SoC와 OS type을 선택한 뒤 Start 버튼을 클릭하면 환경 설정이 완료됩니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432885887.jpg" alt="" /></p> <p> </p> <p><span style="font-family: malgun; font-size: large;">4) 설정된 SoC와 OS를 기준으로 Debug 메뉴를 만들어주며 해당 메뉴를 통해서 디버깅을 할 수 있습니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432885901.jpg" alt="" /></p> <table cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="375" height="353"> <table cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td> <div class="shape"> <ul> <li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Setting COM port</strong></span></li> </ul> <span style="font-family: malgun; font-size: large;"> : UART port 설정(Linux 환경만 해당) </span> <ul> <li><span style="font-family: malgun; font-size: large;"><strong> Execute Server</strong></span></li> </ul> <span style="font-family: malgun; font-size: large;"> : PowerGDB server 실행 </span> <ul> <li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>App Main Debug</strong></span></li> </ul> <span style="font-family: malgun; font-size: large;"> : Application의 main 함수부터 디버깅 </span> <ul> <li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>App Attach Debug</strong></span></li> </ul> <span style="font-family: malgun; font-size: large;"> : 실행되고 있는 application을 디버깅 </span> <ul> <li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Multi-process Debug</strong></span></li> </ul> <span style="font-family: malgun; font-size: large;"> : 두 개 이상의 process를 동시에 디버깅 </span> <ul> <li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Load Symbol by Autoloader</strong></span></li> </ul> <span style="font-family: malgun; font-size: large;"> : Dynamic Library의 symbol 자동 로딩 </span> <ul> <li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Display Processes</strong></span></li> </ul> <span style="font-family: malgun; font-size: large;"> : 동작하고 있는 process 정보 display </span></div> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p> </p> <p><span style="font-family: malgun; font-size: large;">5) Linux 환경의 경우 serial을 위한 COM port 설정을 진행합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432885930.jpg" alt="" /><span style="white-space: pre;"> <img src="/data/wiki/2015-05-29/1432885936.jpg" alt="" /></span></p> <p> </p> <h1><strong><span style="font-family: malgun; font-size: large;">Debugging</span></strong></h1> <h2><strong><span style="font-family: malgun; font-size: large;">Application Main Debugging</span></strong></h2> <p><span style="font-family: malgun; font-size: large;">1) [Debug] – [Execute Server]를 선택합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886074.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">2) Server가 정상적으로 실행하는지 확인합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886084.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">3) Server 실행 후 application을 실행하기 위해 [Debug] – [App Main Debug]를 선택합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886091.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">4) 파일시스템의 경로를 이용하여 application이름을 입력하고 OK 버튼을 클릭합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886103.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">5) 먼저 PowerGDB는 server와 연결하고 application 실행 후 symbol loading을 위해 dialog를 open합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886110.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">6) Symbol을 선택하면 해당 application의 main 함수에 멈추는 것을 확인할 수 있습니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886118.jpg" alt="" /></p> <p> </p> <h2><strong><span style="font-family: malgun; font-size: large;">Application Main Debugging</span></strong></h2> <p><span style="font-family: malgun; font-size: large;">1) [Debug] – [Execute Server]를 선택합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886397.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">2) Server가 정상적으로 실행하는지 확인합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886405.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">3) Server 실행 후 application을 실행하기 위해 [Debug] – [App Attach Debug]를 선택합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886412.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">4) 먼저 PowerGDB와 server가 연결되고, 실행되고 있는 application이름을 입력한 후 OK 버튼을 클릭합니다</span></p> <p><img src="/data/wiki/2015-05-29/1432886419.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">5) 해당 application에 attach된 후 디버깅을 위한 symbol loading window가 open됩니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886430.jpg" alt="" /></p> <p> </p> <p><span style="font-family: malgun; font-size: large;">6) 해당 symbol을 선택하면 attach된 시점의 정보를 확인할 수 있습니다. 특정 함수에 breakpoint를 설정한 후 running합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886437.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">7) 설정된 breakpoint에 멈추는 것을 확인할 수 있습니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886444.jpg" alt="" /></p> <p> </p> <h2><strong><span style="font-family: malgun; font-size: large;">Reverse 기능 활용</span></strong></h2> <p><span style="font-family: malgun; font-size: large;">PowerGDB는 실행된 application의 정보를 이용해서 reverse 기능을 활용해 forward/ backward debugging을 할 수 있습니다.</span></p> <p><span style="font-family: malgun; font-size: large;">아래 기능 설명은 application이 main부터 실행되어 종료되는 시점까지의 정보를 이용해 reverse 기능을 활용한 설명입니다.</span></p> <p> </p> <p><span style="font-family: malgun; font-size: large;">1) PowerGDB를 이용해 Application main debugging을 시작합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886772.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">2) Application을 running 시켜 종료되는 시점까지 기다립니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886784.jpg" alt="" /></p> <p><img src="/data/wiki/2015-05-29/1432886793.jpg" alt="" /></p> <p><img src="/data/wiki/2015-05-29/1432886819.jpg" alt="" /></p> <p> </p> <p><span style="font-family: malgun; font-size: large;">3) 실행이 완료된 application 상태에서 이전의 main함수까지 이동하기 위해서 go.back main 명령을 입력합니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886826.jpg" alt="" /></p> <p><span style="font-family: malgun; font-size: large;">4) main함수부터 디버깅할 수 있도록 모든 정보를 복원하며, forward/ backward 기능을 이용해 수행된 정보를 확인할 수 있습니다.</span></p> <p><img src="/data/wiki/2015-05-29/1432886834.jpg" alt="" /></p> <p> </p> <p> </p> <p> </p>
PowerGDB user Guide
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
행위
검색
TRACE32 Dummy
TRACE32
iTSP User's Guide
aTSP User's Guide
Linux Debugging
Debugging Tips
Trace Analysis
Virtual Target
TRACE32로 바라본 ARM
TRACE32 FAQ
TRACE32 Trouble Shooting
TRACE32 Software Update
Software Revision History
DT10 / DT-Win
다운로드
DT10 Evaluation
DT-Win Evaluation
TestPoint 삽입 Error
Build Error
DT10 FAQ
도구
여기를 가리키는 문서
가리키는 글의 바뀜
특수 문서 목록
문서 정보