공부중
[UE] 디버깅 할때 FString 값을 볼 수 없는 경우 본문
어느날 갑자기 디버깅 할때 FString 값을 볼수 없게된 경우가 발생 했었다.
진짜 되던게 안되던것이라 뭐지? 하고 불편했던 기억이 있었다.
첨에는 DebugGame이 아니어서 그랬나 했지만 Shipping에서도 디버깅을 돌릴때 값을 본 기억이 있었기에
뭔가 문제가 있을 것이라 생각하고 찾아보았다.
https://forums.unrealengine.com/t/how-to-watch-value-of-fstring-on-debug-mode/287743
관련 정보 찾은 내용은 위의 글이다.
먼저 테스트로 만든 프로젝트는 아래와 같다.
간단한 3인칭 기본 프로젝트에서 GameMode에 FString 값을 넣고 그냥 Compare하는 코드를 넣었다.
UCLASS(minimalapi)
class AtesttttGameMode : public AGameModeBase
{
GENERATED_BODY()
public:
AtesttttGameMode();
protected:
FString _TestString = TEXT("HelloTestString");
};
//===========================================================
AtesttttGameMode::AtesttttGameMode()
{
// set default pawn class to our Blueprinted character
static ConstructorHelpers::FClassFinder<APawn> PlayerPawnBPClass(TEXT("/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter"));
if (PlayerPawnBPClass.Class != NULL)
{
DefaultPawnClass = PlayerPawnBPClass.Class;
if (0 == _TestString.Compare(TEXT("HelloTestString")))
{
if (GEngine)
{
GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, TEXT("Same String"));
}
}
}
}
작성한 코드는 간단히 살펴볼것이라 위와 같이 간단하게 되어있고 증상은 아래와 같다.
그럼 조사식에서 내부를 볼수 있지 않을까?
뭐가 들어있는지 볼 수가 없었다.
물론 메모리 주소 직접 찍어서 볼순있다. 근데 일일히 이러는건 너무 불편하다.
찾아본 결과 아래와 같은 내용을 찾을 수 있었다.
솔루션 탐색기에 보면 Visualizers 폴더에 아무것도 없다.
<언리얼 설치 경로>/Engine\Extras\VisualStudioDebugging\Unreal.natvis ex) C:\Program Files\Epic Games\UE_5.0\Engine\Extras\VisualStudioDebugging\Unreal.natvis |
위의 파일이 하나 있는데 이것을 저곳에 추가해 주도록 하자
저 파일이 뭐고 어떻게 동작하고 어떤식으로 볼수 있게 해주는지는 나는 모른다
아무튼 저 파일을 통해서 언리얼 프로젝트를 VisualStudio에서 디버깅을 할때 값을 볼수 있게끔 해주는 파일로만 알고 있다.
관련 자세한 내용은 아래의 링크로
어? 저는 솔루션탐색기를 보니까 Visualizers/Unreal.natvis가 이미 존재하는데요? 이런 분들도 있을것이다.
그러면 속성을 보고 파일의 경로가 올바른지 실제로 경로에 해당 파일이 존재하는지 확인을 해야 한다.
디버깅을 종료하지 않고도 파일 추가가 가능한데 파일을 추가하고 나면 아래와 같이 값을 볼 수 있다.
'Programing > UnrealEngine' 카테고리의 다른 글
[UE] 언리얼 엔진에서 http를 통해 파일을 다운로드 받을 때 속도가 느린 문제 (0) | 2023.10.29 |
---|---|
[UE]외부 프로그램 실행 (0) | 2022.09.25 |
[UE]프로젝트 패키지를 하고 나온 exe파일 속성 변경 (0) | 2022.08.29 |
[UE4] 슬레이트(Slate) 디버그 툴 - 테스트 스위트 (0) | 2022.06.12 |
[UE4]ApplyDamage, ApplyPointDamage, ApplyRadialDamage (0) | 2020.01.31 |