"PowerGDB user Guide"의 두 판 사이의 차이

TRACE32
이동: 둘러보기, 검색
(새 문서: <p> </p> <h2><span style="font-family: malgun; font-size: large;">Overview</span></h2> <p><span style="font-family: malgun; font-size: large;">본 자료는 Software Debugging So...)
 
53번째 줄: 53번째 줄:
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Setting    COM port</strong></span></li>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Setting    COM port</strong></span></li>
 
</ul>
 
</ul>
<span style="font-family: malgun; font-size: large;"> &nbsp; &nbsp;&nbsp;: UART port 설정(Linux 환경만 해당) </span>
+
<span style="font-family: malgun; font-size: large;"> &nbsp; &nbsp;&nbsp;: UART port 설정(Linux 환경만 해당) </span>  
 
<ul>
 
<ul>
 
<li><span style="font-family: malgun; font-size: large;"><strong> Execute Server</strong></span></li>
 
<li><span style="font-family: malgun; font-size: large;"><strong> Execute Server</strong></span></li>
 
</ul>
 
</ul>
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp;&nbsp;&nbsp; : PowerGDB server 실행 </span>
+
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp;&nbsp;&nbsp; : PowerGDB server 실행 </span>  
 
<ul>
 
<ul>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>App    Main Debug</strong></span></li>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>App    Main Debug</strong></span></li>
 
</ul>
 
</ul>
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp;&nbsp;&nbsp; : Application의 main 함수부터 디버깅 </span>
+
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp;&nbsp;&nbsp; : Application의 main 함수부터 디버깅 </span>  
 
<ul>
 
<ul>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>App    Attach Debug</strong></span></li>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>App    Attach Debug</strong></span></li>
 
</ul>
 
</ul>
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp;&nbsp;&nbsp; : 실행되고 있는 application을 디버깅 </span>
+
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp;&nbsp;&nbsp; : 실행되고 있는 application을 디버깅 </span>  
 
<ul>
 
<ul>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Multi-process    Debug</strong></span></li>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Multi-process    Debug</strong></span></li>
 
</ul>
 
</ul>
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp;&nbsp;&nbsp; : 두 개 이상의 process를 동시에 디버깅 </span>
+
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp;&nbsp;&nbsp; : 두 개 이상의 process를 동시에 디버깅 </span>  
 
<ul>
 
<ul>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Load    Symbol by Autoloader</strong></span></li>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Load    Symbol by Autoloader</strong></span></li>
 
</ul>
 
</ul>
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp; &nbsp;&nbsp;: Dynamic Library의 symbol 자동 로딩 </span>
+
<span style="font-family: malgun; font-size: large;"> &nbsp;&nbsp; &nbsp;&nbsp;: Dynamic Library의 symbol 자동 로딩 </span>  
 
<ul>
 
<ul>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Display    Processes</strong></span></li>
 
<li><span style="font-family: malgun; font-size: large;"><strong> </strong><strong>Display    Processes</strong></span></li>
141번째 줄: 141번째 줄:
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p><span style="font-family: malgun; font-size: large;">4)&nbsp;&nbsp;&nbsp;&nbsp; main함수부터 디버깅할 수 있도록 모든 정보를 복원하며, forward/ backward 기능을 이용해 수행된 정보를 확인할 수 있습니다.</span></p>
 
<p><span style="font-family: malgun; font-size: large;">4)&nbsp;&nbsp;&nbsp;&nbsp; main함수부터 디버깅할 수 있도록 모든 정보를 복원하며, forward/ backward 기능을 이용해 수행된 정보를 확인할 수 있습니다.</span></p>
<p>&nbsp;</p>
 
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>

2015년 5월 29일 (금) 16:42 판

 

Overview

본 자료는 Software Debugging Solution인 PowerGDB를 소개하고 간단한 사용방법을 정리한 문서입니다.

Linux 기반의 application을 디버깅할 수 있는 PowerGDB는 JTAG port와 같은 별도의 HW port가 필요없으며, Hardware Debugger를 사용하지 않습니다.

 

사용 환경

PowerGDB를 사용할 수 있는 환경은 다음과 같습니다.

Linux 기반의 application을 디버깅하는 Software Debugging solution이기 때문에 Linux 환경은 대부분 지원이 가능합니다.

 

CPU ARM / x86
Target OS Linux, Android, Tizen, WebOS
TRACE32 PowerView version 2015년 이상

 

2.  PowerGDB 설정 및 실행

PowerGDB를 효율적으로 사용하기 위해 PGDB(PowerGDB) Package를 활용합니다.

 

2.1.   PGDB 설정

1)     PGDB package는 PowerGDB 효율적으로 사용하기 위한 환경이며, Linux application 디버깅 환경을 단순화 시켜줍니다. 또한 여러 환경을 하나의 디렉토리에서 사용하기 때문에 관리가 용이합니다.

 

 

2)     PGDB를 실행하기 위해서는 C:\T32\PGDB 내에 link 파일을 이용하여 실행합니다. ARM을 기준으로 실행하려면 PwerGDB ARM link파일을 실행하시면 됩니다.

 

 

3)     해당 link 파일을 실행하면 PowerGDB의 GUI인 TRACE32 Powerview를 실행합니다. 이후 SoC와 OS type을 선택한 뒤 Start 버튼을 클릭하면 환경 설정이 완료됩니다.

 

 

4)     설정된 SoC와 OS를 기준으로 Debug 메뉴를 만들어주며 해당 메뉴를 통해서 디버깅을 할 수 있습니다.

  • Setting COM port
    : UART port 설정(Linux 환경만 해당)
  • Execute Server
     : PowerGDB server 실행
  • App Main Debug
     : Application의 main 함수부터 디버깅
  • App Attach Debug
     : 실행되고 있는 application을 디버깅
  • Multi-process Debug
     : 두 개 이상의 process를 동시에 디버깅
  • Load Symbol by Autoloader
     : Dynamic Library의 symbol 자동 로딩
  • Display Processes
     : 동작하고 있는 process 정보 display
 

 

 

 

 

 

 

 

 

5)     Linux 환경의 경우 serial을 위한 COM port 설정을 진행합니다.

 

 

3.  Debugging

3.1.   Application Main Debugging

1)     [Debug] – [Execute Server]를 선택합니다.

 

2)     Server가 정상적으로 실행하는지 확인합니다.

 

3)     Server 실행 후 application을 실행하기 위해 [Debug] – [App Main Debug]를 선택합니다.

 

4)     파일시스템의 경로를 이용하여 application이름을 입력하고 OK 버튼을 클릭합니다.

 

5)     먼저 PowerGDB는 server와 연결하고 application 실행 후 symbol loading을 위해 dialog를 open합니다.

 

6)     Symbol을 선택하면 해당 application의 main 함수에 멈추는 것을 확인할 수 있습니다.

 

 

3.2.   Application Main Debugging

1)     [Debug] – [Execute Server]를 선택합니다.

 

2)     Server가 정상적으로 실행하는지 확인합니다.

 

3)     Server 실행 후 application을 실행하기 위해 [Debug] – [App Attach Debug]를 선택합니다.

 

4)     먼저 PowerGDB와 server가 연결되고, 실행되고 있는 application이름을 입력한 후 OK 버튼을 클릭합니다

 

5)     해당 application에 attach된 후 디버깅을 위한 symbol loading window가 open됩니다.

 

 

6)     해당 symbol을 선택하면 attach된 시점의 정보를 확인할 수 있습니다. 특정 함수에 breakpoint를 설정한 후 running합니다.

 

7)     설정된 breakpoint에 멈추는 것을 확인할 수 있습니다.

 

 

3.3.   Reverse 기능 활용

PowerGDB는 실행된 application의 정보를 이용해서 reverse 기능을 활용해 forward/ backward debugging을 할 수 있습니다.

아래 기능 설명은 application이 main부터 실행되어 종료되는 시점까지의 정보를 이용해 reverse 기능을 활용한 설명입니다.

 

1)     PowerGDB를 이용해 Application main debugging을 시작합니다.

 

2)     Application을 running 시켜 종료되는 시점까지 기다립니다.

 

 

3)     실행이 완료된 application 상태에서 이전의 main함수까지 이동하기 위해서 go.back main 명령을 입력합니다.

 

4)     main함수부터 디버깅할 수 있도록 모든 정보를 복원하며, forward/ backward 기능을 이용해 수행된 정보를 확인할 수 있습니다.