본문 바로가기
다양한 TIP

코어덤프 backtrace demangler 방법(name mangling)

by 유기농프로그래밍 2022. 9. 28.
반응형

코어덤프 backtrace

코어덤프의 백트레이스를 보면 함수명이 이상하게 변경되어 있는 걸 볼 수 있습니다.

 

이건 Name Mangling 을 진행하여 보여주기 때문인데요.

직역하면, "이름을 망치질한다"는 것인데, 이름을 특정방법으로 다시 쓰는걸 의미합니다.

 

예를들어 아래  함수를 mangling 하면 이렇게 됩니다.

std::__1::recursive_mutex::recursive_mutex()

_ZNSt3__115recursive_mutexC1Ev

각각의 축약하는 로직이 있는데, 대략 이런로직이 있다정도만 보면 될것 같고, 중요한건 backtrace에는 mangling된 이름이 적혀있다는 것입니다.

 

이걸 풀어주는 사이트들이 많은데 demangler를 하면 반대로 읽기 쉽게 풀 수 있습니다.

 

 

_ZNSt3__115recursive_mutexC1Ev

std::__1::recursive_mutex::recursive_mutex()

제가 추천하는 사이트는 "http://demangler.com/" 입니다.

텍스트 그대로 입력하면 풀어주기 때문에 한눈에 볼 수 있습니다.

 

추후 풀어주는 라이브러리도 한번 찾아봐야겠군요.

반응형

댓글