본문 바로가기
개발/Unity) 코드분석

C#) Call Stack (StackTrace)

by 테샤르 2023. 12. 26.

 Call Stack (StackTrace)

 

현재 실행 중인 메서드의 호출 스택의 스택 트레이스를 만드는 방법을 간단하게 포스팅한다.

 

 

반응형

 

< 테스트 코드 >

    public class Utill
    {

        private static string TAG = "[ProjectFinder]";
        public static void ShowLog(string _log)
        {
#if PROJECT_FINDER

#if SHOW_LOG_CALL_STACK
            var stackTrace = new System.Diagnostics.StackTrace(true);
            var previusCallStack = stackTrace.GetFrame(1);

            if(previusCallStack != null)
                Debug.Log($"{TAG}-[{previusCallStack.GetMethod()} Line :{previusCallStack.GetFileLineNumber()}] {_log}");
            else
#endif
                Debug.Log($"{TAG} {_log}");
#endif
        }
        ...
        
        }

 

stackTrace.GetFrame(1)으로 0부터시작하는 인덱스에서 첫번째 호출자를 가져온다.

이 코드를 사용하면 어떻게 호출되었는지 추적하거나 디버깅할때 간략하게 확인이 가능하다.

 

StackTrace 클래스 : [링크]

 

StackTrace 클래스 (System.Diagnostics)

여러 스택 프레임의 정렬된 컬렉션에 해당하는 스택 추적을 나타냅니다.

learn.microsoft.com

 

★☆☆☆

 

반응형

댓글