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
원격지원
사이트맵 보기
UndoDB user Guide in Eclipse 문서 원본 보기
←
UndoDB user Guide in Eclipse
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게만 가능합니다:
사용자
문서의 원본을 보거나 복사할 수 있습니다:
<p> </p> <h1>Overview</h1> <p>본 자료는 Software Debugging Solution인 UndoDB를 소개하고 간단한 사용방법을 정리한 문서입니다.</p> <p>Linux 기반의 application을 디버깅할 수 있는 UndoDB는 JTAG port와 같은 별도의 HW port가 필요없으며, Hardware Debugger를 사용하지 않습니다.</p> <p> </p> <h2>사용 환경</h2> <p>UndoDB를 사용할 수 있는 환경은 다음과 같습니다.</p> <p>UndoDB는 기본적으로 command 방식으로 사용하는데 이를 해결하기 위해서 두 가지의 GUI를 제공합니다.</p> <p>TRACE32 Powerview와 Eclipse를 이용해서 편리한 디버깅 환경을 제공하는데 해당 문서에서는 개발자들에게익숙한 Eclipse를 이용한 방법을 guide합니다.</p> <p>현재 Eclipse 지원은 host가 Linux 환경에서만 가능하고, window환경은 추후 지원 예정입니다.</p> <p>Linux 기반의 application을 디버깅하는 Software Debugging solution이기 때문에 Linux 환경은 대부분 지원이 가능합니다.</p> <p> </p> <div> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="235" valign="top"> <p>CPU</p> </td> <td width="304" valign="top"> <p>ARM / x86</p> </td> </tr> <tr> <td width="235" valign="top"> <p>Target OS</p> </td> <td width="304" valign="top"> <p>Linux</p> </td> </tr> <tr> <td width="235" valign="top"> <p>Eclipse 버전</p> </td> <td width="304" valign="top"> <p>Eclipse IDE for C/C++ Develpers</p> <p>Mars.1 Release (4.5.1) 이상</p> </td> </tr> </tbody> </table> </div> <p> </p> <h2>준비 사항</h2> <h3>Debugging Symbol</h3> <p>C/C++ 소스 레벨로 디버깅을 위해서는 symbol 정보가 필요합니다. Symbol 정보는 컴파일 시에 option에 의해 결정됩니다.</p> <p>일반적으로 symbol 정보가 정상적으로 만들어지는 경우 makefile 내의 CFLAG 옵션에 –g 가 포함이 되어 있습니다. Symbol정보가 정상적으로 만들어진 경우 디버깅 시 C/C++ 소스 레벨로 디버깅이 가능합니다.</p> <p>Symbol 파일이 정상적으로 만들어졌는지 확인하고자 할 때는 linux 명령어 중 file/readelf 명령어를 이용해서 확인 가능합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434577.jpg" alt="" /></p> <p> </p> <h3>UndoDB server 포팅</h3> <p>UndoDB는 server와 client 간의 communication을 통해 얻은 디버깅 정보를 활용하는 Software debugging tool입니다. 그렇기 때문에 통신을 위한 server를 target에 포팅하는 작업이 필요합니다.</p> <p>별도의 컴파일 작업은 필요없고, license key와 server를 target의 특정 file system 공간에 넣어주시면 됩니다.</p> <p><img src="/data/wiki/2016-03-08/1457434585.jpg" alt="" /></p> <p> </p> <p>해당 server는 동작 중 임시 정보를 target filesystem의 tmp 디렉토리에 저장합니다. 이런 이유로 tmp 디렉토리 권한에 write 속성을 셋팅해야 합니다.</p> <p><strong> <img src="/data/wiki/2016-03-08/1457434696.jpg" alt="" /></strong></p> <h3>그 외 준비사항</h3> <p>Linux 환경의 경우 Ethernet 통신을 위한 LAN port 연결, Serial 메시지와 명령어 수행을 위한 UART 연결이 필요합니다.</p> <p> </p> <h1>UndoDB 설정 및 실행</h1> <p>UndoDB를 사용하기 위해 eclipse의 remote 설정을 진행합니다.</p> <p> </p> <h2>Eclipse 설정</h2> <p>1) Eclipse를 실행한 뒤 Run->Debug Configurations… 메뉴를 선택합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434706.jpg" alt="" /></p> <p> </p> <p>2) C/C++ Remote Application 탭에서 우클릭 후 New를 선택합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434715.jpg" alt="" /></p> <p> </p> <p>3) Targer과의 connection을 위한 설정을 진행합니다. Connection 메뉴에서 New를 선택합니다</p> <p><img src="/data/wiki/2016-03-08/1457434725.jpg" alt="" /></p> <p> </p> <p>4) SSH Only를 선택하고 Next를 클릭합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434732.jpg" alt="" /></p> <p>5) Connection 할 target의 name과 ip, user id를 입력한 후 OK 버튼을 클릭합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434739.jpg" alt="" /></p> <p> </p> <p>6) Debugging을 위한 symbol 위치(host pc에서의 경로)와 target의 application 위치를 입력합니다. Target의 app을 디버깅하기 위해서는 다운로드 속성을 skip합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434750.jpg" alt="" /></p> <p>7) Debugger 탭으로 이동한 후 undodb-gdb 가 있는 host pc의 위치를 입력합니다. Undodb를 이용한 reverse debugging을 위해서 reverse 기능을 enable 합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434757.jpg" alt="" /></p> <p> </p> <p>8) Debugger 내의 Gdbserver Settings 탭으로 이동한 후 target에 위치한 undodb-server 경로를 입력합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434763.jpg" alt="" /></p> <p> </p> <p>해당 환경 설정까지가 Eclipse를 이용한 remote 디버깅을 위한 환경 설정입니다.</p> <p>만약 다른 application을 디버깅하기 위해서는 main 탭에서 symbol 위치와 application 위치를 변경하면 됩니다. ( 6번 항목 참고)</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><strong><br /> </strong></p> <h1>Debugging</h1> <h2>Application Main Debugging</h2> <p>1) Chapter 2에서 셋팅한 remote name을 선택하면 셋팅된 application을 디버깅할 수 있습니다.</p> <p><img src="/data/wiki/2016-03-08/1457434780.jpg" alt="" /></p> <p>2) 이미 셋팅된 설정에 의해 자동으로 connection이 이루어지며, 모든 설정이 완료되면 해당 application의 main 함수에 멈춘 것을 확인할 수 있습니다.</p> <p><img src="/data/wiki/2016-03-08/1457434788.jpg" alt="" /></p> <p>3) Forward 버튼과 reverse 버튼을 이용한 디버깅을 진행할 수 있습니다.</p> <p><img src="/data/wiki/2016-03-08/1457434796.jpg" alt="" /></p> <p> </p> <h2>Application Attach Debugging</h2> <p>Attach 방식을 사용하기 위해서는 별도의 script를 이용해서 수행하도록 합니다.</p> <p>1) 먼저 실행되고 있는 application의 pid를 확인합니다. powergdbedu라는 application이 실행되고 있으며, pid가 853 인 것을 확인할 수 있습니다.</p> <p><img src="/data/wiki/2016-03-08/1457434804.jpg" alt="" /></p> <p>2) 해당 application 디버깅을 위해 별도의 script를 작성합니다. attach.sh script로 작성된 내용은 아래와 같습니다.</p> <p><img src="/data/wiki/2016-03-08/1457434811.jpg" alt="" /></p> <p> </p> <p>3) Eclipse의 remote 설정에서 gdbserver 셋팅을 해당 script를 실행하도록 변경합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434820.jpg" alt="" /></p> <p>4) Eclispse에서 설정한 remote를 선택해서 디버깅을 시도합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434827.jpg" alt="" /></p> <p>5) 실행 중인 application을 attach 방식으로 연결이 되며, 연결되는 시점을 기준으로 디버깅이 가능합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434835.jpg" alt="" /></p> <h2>Reverse 기능 활용</h2> <p>Eclipse에서 UndoDB를 사용하면 reverse 기능을 이용할 수 있습니다.</p> <p>Reverse 디버깅을 하기 위해서는 eclipse의 상단 메뉴를 이용하면 됩니다.</p> <p>디버깅 방법은 TRACE32 Powerview에서 사용하는 방법과 동일합니다.</p> <p><img src="/data/wiki/2016-03-08/1457434843.jpg" alt="" /></p>
UndoDB user Guide in Eclipse
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
행위
검색
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
도구
여기를 가리키는 문서
가리키는 글의 바뀜
특수 문서 목록
문서 정보