위키득계정 ↗
기술

LLVM Cxxfilt

LLVM Cxxfilt기술
실행 이름
llvm-cxxfilt
분류
심벌 이름 디맹글러
입력
인코딩된 심벌 이름
출력
해석한 이름 또는 원래 이름
LLVM Cxxfilt는 인코딩된 심벌 이름을 사람이 읽기 쉬운 형태로 풀어 주는 도구다. 바이너리 분석과 링크 오류 조사에서 함수 이름 등을 해석하는 데 활용한다.

이름의 인코딩

함수 이름과 매개변수 등의 정보가 심벌 이름에 인코딩되어 있으면 원래 식별자를 읽기 어렵다. 디맹글링은 이 표현을 풀어 사람이 이해할 수 있게 표시한다. 이것이 바이너리에서 함수 구현이나 원래 소스 파일 전체를 복구하는 작업은 아니다.

입력 방식과 표시

명령행에 여러 이름을 주거나 표준 입력으로 텍스트를 전달할 수 있다. 표준 입력에서는 이름 사이의 구분 문자를 유지하며 처리한다. 이름을 해석할 수 없으면 원문 그대로 출력하므로 출력이 존재한다는 이유만으로 변환 성공을 판단하지 않는다.

다른 도구와 조합

심벌 표 조회나 링크 오류 출력과 연결하면 긴 이름을 읽는 데 도움이 된다. 매개변수 표시와 접두 밑줄 처리 등 설정에 따라 표현이 달라질 수 있다. 표시 이름이 비슷하더라도 실제 심벌의 연결 의미는 원래 인코딩과 속성을 기준으로 살핀다.

관련 문서

LLVM NM / LLVM Objdump / LLVM Readobj / Clang