Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- Swift
- task
- ios바이너리분석
- swift6.1
- mangle
- updatecycle
- displayscale
- 다이나믹링크분석
- mainrunloop
- swift6
- IOS
- xcrun swift-demangle
- swiftconcurrency
- modulararchitecture
- 이진삽입정렬
- 뷰의레이아웃을계산하는메서드
- XCUITest
- applaucnchprocess
- uicollectionview
- cgimage
- SPM
- mach-o파일분석
- UIKit
- WWDC24
- Architecture
- 뷰를그리는메서드
- ciimage
- Xcode
- swift-demangle
- actor
Archives
- Today
- Total
꾸준한 기록
Swift Demangle 본문
다이나믹 라이브러리에서 외부로 export 하는 심볼을 확인할 때 `swift-demangle` 이라는 옵션을 같이 사용한다.
만일 `swift-demangle` 옵션을 사용하지 않으면, 심볼이 mangle되어서 심볼이 어떤 타입을 나타내는지 읽기 어렵다.
아래에 mangle된 심볼 모습을 보면 알아보기 힘든 형태로 되어있다.

동일한 것을 `swift-demangle` 옵션을 붙여서 심볼을 demangle 시키면 훨씬 보기 쉬운 것을 확인할 수 있다.
UserDTO라는 것을 알가보기가 훨씬 더 쉽다.

그렇다면 왜 mangle 되는 것일까?
symbol이 어떤 타입인지를 symbol의 이름 안에 같이 담는 것이다.
이를 통해서 Swift는 런타임에 오버로딩된 함수들을 구별할 수 있다. 또한 다이나믹 링커가 정확하게 타입을 찾아서 링크하기 위해서 mangle된 이름을 사용한다.
그렇기에 export된 심볼을 확인할 때도 mangle된 네이밍이 출력된다.
Demangle
Demangle이란 mangle된 이름을 사람이 읽기 쉬운 형태로 바꾸는 것을 말한다.
`xcrun swift-demangle`을 쓰면 symbol을 demangle해서 확인할 수 있다.
'Swift' 카테고리의 다른 글
| Swift Concurrency 사용하면서 실수하기 쉬운 부분 (0) | 2025.05.13 |
|---|---|
| Swift 6.1 업데이트 (0) | 2025.05.10 |
| 정렬 알고리즘 (0) | 2024.09.14 |
| Swift에서 Sort() (0) | 2024.09.14 |
| strong, weak, unowned (0) | 2024.09.10 |