You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
118 lines
7.8 KiB
Plaintext
118 lines
7.8 KiB
Plaintext
INTSourceChangelist:2374181
|
|
Availability:Public
|
|
Title: 심볼 디버거
|
|
Crumbs: %ROOT%, Engine, Programming, Programming/Development/Tools
|
|
Description: 엔진 크래시에서 생성된 미니덤프 파일을 디버깅하는 데 사용되는 툴입니다.
|
|
Version: 4.5
|
|
|
|
Symbol Debugger 는 아티스트나 레벨 디자이너 머신의 어플리케이션 크래시나 빌드 머신이 생성한 빌드의 크래시에서 생성된 미니덤프 파일을 원격 디버깅하는 데 필요한 파일 동기화 작업을 도와주는 프로그램입니다.
|
|
|
|

|
|
|
|
빌드 시스템이 생성한 빌드의 소스 인덱싱과 로컬 Symbol Store를 활용하여 빌드 생성 당시의 소스 파일을 동기화시킬 필요 없이 디버깅이 가능합니다.
|
|
|
|
크래시 리포트에서의 미니덤프 파일을 디버깅하는 작업은 이제 dmp 파일을 끌어 심볼 디버거 앱에 떨구기만 하면 됩니다. 참 쉽죠~ (Symbol Debugger 를 제대로 활용하기 위해서는 필요한 약간의 셋업 작업이 있기는 합니다. 그에 대해서는 이 문서 말미에 설명하도록 하겠습니다.)
|
|
|
|
## UI 설명
|
|
|
|

|
|
|
|
1. [메소드 선택](#메소드선택)
|
|
1. [메소드 입력](#메소드입력)
|
|
1. [심볼 스토어](#심볼스토어)
|
|
1. [플랫폼](#플랫폼)
|
|
1. [엔진 버전](#엔진버전)
|
|
1. [Changelist 번호](#Changelist번호)
|
|
1. [소스 콘트롤 라벨](#소스콘트롤라벨)
|
|
1. [동작 버튼](#동작버튼)
|
|
|
|
|
|
### 메소드 선택
|
|
|
|
심볼 디버거 실행시 허용된 메소드는 네가지! 현재 메소드는 라벨이 붙은 동글 버튼을 통해 선택됩니다. 선택된 메소드에 따라 사용자가 추가 정보를 입력할 수 있도록 다양한 콘트롤이 꺼졌다 켜졌다 합니다. 지원되는 메소드는 다음과 같습니다:
|
|
|
|
| 메소드 | 설명 |
|
|
| ------ | ---- |
|
|
| CrashDump | 크래시 덤프 - 미니덤프 파일 디버깅에 필요한 파일을 알아내기 위해 미니덤프 파일을 처리하여, 해당 파일을 퍼포스에서 동기화시키고, 디버거를 실행시킬 수 있습니다. |
|
|
| EngineVersion | Engine Ver - 소스 콘트롤에서 올바른 빌드 라벨을 알아내는 데 사용할 수 있도록 크래시가 난 어플리케이션의 Engine Ver을 지정할 수 있습니다. 그런 다음 필요한 파일을 빨아들여 크래시가 난 어플리케이션의 원격 디버깅을 시작할 수 있습니다. |
|
|
| Changelist | 변경목록 - 크래시가 난 어플리케이션을 빌드한 ChangeList 를 지정하여, 필요한 파일을 동기화시고 해당 어플리케이션을 원격 디버깅할 수 있습니다. |
|
|
| SourceLabel | 소스 라벨 - 빌드 라벨을 지정하여 필요한 파일을 동기화시키고 크래시가 난 어플리케이션을 원격 디버깅할 수 있습니다. |
|
|
|
|
### 메소드 입력
|
|
|
|
'메소드 입력' 부분에는 현재 메소드에 필요한 정보를 입력할 수 있는 글상자가 있습니다.
|
|
|
|
EngineVersion, Changelist, SourceLabel 중 하나가 선택된 경우라면, 글상자에 그 값을 입력하기만 하면 됩니다.
|
|
|
|
CrashDump 메소드가 선택된 경우, 글상자는 미니덤프 파일 전체 경로를 기대합니다. 이 메소드가 활성화되면 'File Open' 버튼 역시 표시되어, 표준 파일 선택창을 통해 크래시 덤프를 선택할 수 있습니다.
|
|
|
|
### 심볼 스토어
|
|
|
|
'Symbol Store' 부분에는 디버깅에 필요한 파일을 동기화시키는 데 활용할 로컬 심볼 스토어 위치를 입력할 수 있는 글상자가 있습니다. 이 값은 Engine.ini 파일의 다음 부분에서 구해옵니다:
|
|
|
|
[Engine.CrashDebugHelper]
|
|
LocalSymbolStore=d:/Symbols/UE4
|
|
|
|
[REGION:note]
|
|
현재, 이 항목을 어플리케이션에서 바꿔도 ini 세팅이 업데이트되지는 않습니다.
|
|
[/REGION]
|
|
|
|
이 값은 [Visual Studio 셋업](#VisualStudio셋업) 에도 활용됩니다.
|
|
|
|
### 플랫폼
|
|
|
|
'Platform' 부분에는 빌드가 대상으로 삼은 플랫폼이 들어갑니다. CrashDump 이외의 메소드가 선택된 경우, 여기에 적합한 플랫폼 문자열을 ('Win32' 든 'Win64' 든) 설정해 줘야 합니다.
|
|
|
|
### 엔진 버전
|
|
|
|
'Engine Ver' 부분에는 관심 대상 엔진 버전이 들어갑니다. 메소드가 CrashDump, Changelist, SourceLabel 중 하나라면 이 칸은 수정할 수 없고 선택된 메소드의 조사 결과 결정된 내용이 채워집니다. 메소드가 EngineVersion 이라면, '메소드 입력' 글상자에 입력한 내용이 채워집니다.
|
|
|
|
### Changelist 번호
|
|
|
|
'Changelist #' 부분에는 관심 대상 빌드의 ChangeList 번호가 들어갑니다. 메소드가 CrashDump, EngineVersion, SourceLabel 중 하나라면 이 칸은 수정할 수 없고 선택된 메소드의 조사 결과 결정된 내용이 채워집니다. 메소드가 Changelist 라면, '메소드 입력' 글상자에 입력한 내용이 채워집니다.
|
|
|
|
### 소스 콘트롤 라벨
|
|
|
|
'Label' 부분에는 관심 대상 빌드의 엔진 버전이 들어갑니다. 메소드가 CrashDump, EngineVersion, Changelist 중 하나라면 이 칸은 수정할 수 없고 선택된 메소드의 조사 결과 결정된 내용이 채워집니다. 메소드가 SourceLabel 이라면, '메소드 입력' 글상자에 입력한 내용이 채워집니다.
|
|
|
|
### 동작 버튼
|
|
|
|
'동작 버튼' 부분에는 여러가지 동작을 실행시키는 버튼이 있습니다. 선택된 메소드의 현재 상태에 따라 켜집니다. 현재 있는 버튼은 다음과 같습니다:
|
|
|
|
| 버튼 | 설명 |
|
|
| ---- | ---- |
|
|
| Inspect | 조사 - 제공된 정보를 평가하여 빌드의 소스 콘트롤 라벨을 결정하는 데 사용되는 버튼입니다. 현재 메소드를 평가하기에 충분한 정보가 입력된 경우 켜집니다. 예를 들어 CrashDump 메소드가 선택된 경우, 크래시 덤프 파일명과 로컬 심볼 스토어만 설정해 주면 됩니다. 그러나 다른 메소드의 경우에는 Platform 칸도 채워줘야 합니다. |
|
|
| Sync | 동기화 - 유효한 빌드 라벨을 찾았다면, Sync 버튼이 켜집니다. 클릭하면 디버깅에 필요한 모든 파일을 소스 콘트롤에서 로컬 심볼 스토어 위치로 동기화시킵니다. |
|
|
| Debug | 디버그 - 현재 CrashDump 에 대해서만 사용가능하며, 클릭하면 제공된 미니덤프와 함께 디버거를 실행시킵니다. |
|
|
|
|
## Visual Studio 셋업
|
|
|
|
### 로컬 심볼 스토어
|
|
|
|
사용하고자 하는 로컬 심볼 스토어는 Visual Studio 에서도 셋업해 줘야 합니다. Debugging Settings 의 **Symbol file locations** 에 경로와 (관심 대상 플랫폼을 포함해서) 추가해 주면 됩니다.
|
|
|
|
[심볼 스토어](#심볼스토어) 부분에서 `.ini` 예제의 심볼 스토어에 대한 예제 세팅은 이렇습니다:
|
|
|
|

|
|
|
|
디버거가 디버깅중인 pdb 파일의 올바른 소스 파일을 끌어올 수 있도록 하기 위해서는, 소스 서버를 켜 주기도 해야 합니다. Debugging Settings 의 General 아래 있습니다:
|
|
|
|

|
|
|
|
Visual Studio 준비 최종 단계는 P4.exe 가 믿을 수 있는 명령이라 알려주는 것입니다. (그리 하지 않으면 P4 가 소스 파일을 끌어올 때마다 대화창으로 초를 치게 됩니다.) srcsrv.ini 라는 파일을 다음 폴더에 넣어주면 됩니다:
|
|
|
|
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE (for Visual Studio 2013)
|
|
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE (for Visual Studio 2012)
|
|
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE (for Visual Studio 2010)
|
|
|
|
이 파일의 내용은 이렇습니다:
|
|
|
|
[trusted commands]
|
|
p4.exe=c:\Program Files\Perforce\p4.EXE
|
|
|
|
|
|
<!---## ToDo List--->
|
|
|
|
<!---* Thread the syncing of pdb files to prevent the appearance of locking up--->
|
|
|