SlideShare a Scribd company logo
• 現 iOS (16.10 ~ )

• : minsone.github.io
• LLDB
• LLDB
• Execution Commands
• Evaluating Expression
• Script - Python REPL
• Chisel
• QA
LLDB
• Apple Xcode LLVM
• LLVM - LLDB
• https://lldb.llvm.org/
LLDB
LLDB
(Execution Commands)
Execution Commands
Execution Commands
# Thread
(lldb) thread list
# Thread 2
(lldb) thread select 2 

(lldb) t 2
# stack backtrace
(lldb) thread backtrace 

(lldb) bt
# stack backtrace
(lldb) thread backtrace all

(lldb) bt all
# stack backtrace frame
(lldb) thread backtrace -c 5 # 0~4 frame

(lldb) bt 5 # 0~4 frame

(lldb) thread backtrace -s 5 -c 10 # 5~14 frame
frame
# frame index
(lldb) frame select 3 # 3 Frame 

(lldb) frame info

(lldb) fr s 0 # 0 Frame 

(lldb) fr info
# frame
(lldb) up # frame select -relative=1

(lldb) up 3 #fr s -r3

(lldb) down # frame select -relative=-1

(lldb) down 4 # fr s -r-4
# frame
(lldb) frame variable [ ] # fr v [ ]

(lldb) frame variable --format x [ ] # fr v -f x [ ]

(lldb) frame variable -o [ ] # fr v -o [ ]
# global
(lldb) target variable

(lldb) target variable [ ]
#
(lldb) thread step-over

(lldb) next

(lldb) n
# frame
(lldb) thread step-in

(lldb) step

(lldb) s
# frame
(lldb) thread step-out

(lldb) finish
# /
(lldb) thread until 23

(lldb) thread until --frame 2 10
# / (1) - Command
(lldb) thread until 21 

(lldb) thread jump --line 19

(lldb) thread jump --by -2
# (2) - Drag
LLDB
(Evaluating Expression)
• LLDB .

• .

• Pause Swift .

• p, po, fr v .
Evaluating Expression
• Expression

• 

• LLDB .
Evaluating Expression
#
# Expression
# Print
# Print Object
Evaluating Expression
Command Alias for Execute
po [expession] expression -Object-description --
Code ,
debugDescription 

description 

LLDB formatter
p [expression] expression --
Code 

LLDB formatter
v / fr v [name] frame variable
Code , LLDB
formatter
Evaluating Expression
Command Alias for Execute
po [expession] expression -Object-description --
Code ,
debugDescription 

description 

LLDB formatter
p [expression] expression --
Code 

LLDB formatter
v / fr v [name] frame variable
Code , LLDB
formatter
“po” Under the Hood
(lldb) po view
: WWDC19 - LLDB: Beyond “po"
“po” Under the Hood
(lldb) po view
Create
compilable code
: WWDC19 - LLDB: Beyond “po"
func __lldb_expr() {

__lldb_res = view

}
“po” Under the Hood
(lldb) po view
Create
compilable code
: WWDC19 - LLDB: Beyond “po"
“po” Under the Hood
(lldb) po view
Create
compilable code
Compile
: WWDC19 - LLDB: Beyond “po"
“po” Under the Hood
(lldb) po view
Create
compilable code
Compile Execute
Get result
: WWDC19 - LLDB: Beyond “po"
func __lldb_expr2 -> String() {

return __lldb_res.description

}
“po” Under the Hood
(lldb) po view
Create
compilable code
Compile Execute
Create code to
access
description
Get result
: WWDC19 - LLDB: Beyond “po"
“po” Under the Hood
(lldb) po view
Create
compilable code
Compile Execute
Create code to
access
description
CompileGet result
: WWDC19 - LLDB: Beyond “po"
“po” Under the Hood
(lldb) po view
Create
compilable code
Compile Execute
Create code to
access
description
Compile ExecuteGet result
: WWDC19 - LLDB: Beyond “po"
“po” Under the Hood
(lldb) po view
Create
compilable code
Compile Execute
Create code to
access
description
Compile ExecuteGet result
“<UIView: 0x12345678>”
: WWDC19 - LLDB: Beyond “po"
“po” Under the Hood
(lldb) po view
Get string result
Create
compilable code
Compile Execute
Create code to
access
description
Compile ExecuteGet result
Display result
string
: WWDC19 - LLDB: Beyond “po"
Evaluating Expression
Command Alias for Execute
po [expession] expression -Object-description --
Code ,
debugDescription 

description 

LLDB formatter
p [expression] expression --
Code 

LLDB formatter
v / fr v [name] frame variable
Code , LLDB
formatter
“p” Under the Hood
(lldb) p cruise
: WWDC19 - LLDB: Beyond “po"
“p” Under the Hood
Create
compilable code
Compile Execute
Get result
(lldb) p cruise
: WWDC19 - LLDB: Beyond “po"
“p” Under the Hood
Dynamic type
resolution
Create
compilable code
Compile Execute
Get result
(lldb) p cruise
: WWDC19 - LLDB: Beyond “po"
“p” Under the Hood
(lldb) p cruise
Create
compilable code
Compile Execute
Get result Formatter
Dynamic type
resolution
: WWDC19 - LLDB: Beyond “po"
Evaluating Expression
Command Alias for Execute
po [expession] expression -Object-description --
Code ,
debugDescription 

description 

LLDB formatter
p [expression] expression --
Code 

LLDB formatter
v / fr v [name] frame variable
Code , LLDB
formatter
“v” Under the Hood
(lldb) v variable
: WWDC19 - LLDB: Beyond “po"
“v” Under the Hood
(lldb) v variable
(lldb) v variable
: WWDC19 - LLDB: Beyond “po"
“v” Under the Hood
Examine
program state
(lldb) v variable
(lldb) v variable
: WWDC19 - LLDB: Beyond “po"
“v” Under the Hood
Examine
program state
Read value from
memory
(lldb) v variable
(lldb) v variable
: WWDC19 - LLDB: Beyond “po"
“v” Under the Hood
Examine
program state
Read value from
memory
Dynamic type
resolution
(lldb) v variable
(lldb) v variable
: WWDC19 - LLDB: Beyond “po"
“v” Under the Hood
Examine
program state
Read value from
memory
Dynamic type
resolution
(lldb) v variable.field1
(lldb) v variable
: WWDC19 - LLDB: Beyond “po"
“v” Under the Hood
Examine
program state
Read value from
memory
Dynamic type
resolution
(lldb) v variable.field1 .field2
(lldb) v variable
: WWDC19 - LLDB: Beyond “po"
“v” Under the Hood
Examine
program state
Read value from
memory
Dynamic type
resolution
(lldb) v variable.field1 .field2
Formatter(lldb) v variable
: WWDC19 - LLDB: Beyond “po"
• 

• .

• .
Evaluating Expression
# Evaluating Expression -
# Evaluating Expression - Push
#
LLDB
(Script - Python REPL)
• Python LLDB Script .
Script - Python REPL
# Execute Script
# Import
# Default import
Chisel
• Facebook (https://github.com/facebook/
chisel)

• .

• iOS LLDB
Chisel
 Advanced Apple Debugging
and Reverse Engineering



from. Raywenderlich
LLDB: Beyond "po" - https://developer.apple.com/videos/play/wwdc2019/429/

[Apple - LLDB Quick Start Guide](https://developer.apple.com/library/archive/documentation/IDEs/Conceptual/
gdb_to_lldb_transition_guide/document/Introduction.html#//apple_ref/doc/uid/TP40012917-CH1-SW1)

[UIKonf18 – Day 1 – Carola Nitz – Advanced Debugging Techniques](https://www.youtube.com/watch?v=578YdS2sNqk)

[Advanced Debugging with Xcode and LLDB](https://developer.apple.com/videos/play/wwdc2018/412)

[Chisel](https://github.com/facebook/chisel)

[LLDB Chisel Commands](https://kapeli.com/cheat_sheets/LLDB_Chisel_Commands.docset/Contents/Resources/Documents/
index)

[More than `po`: Debugging in lldb](https://www.slideshare.net/micheletitolo/more-than-po-debugging-in-lldb)

[Debugging RubyMotion applications](http://ruby-korea.github.io/RubyMotionDocumentation/articles/debugging/)

[Xcode LLDB ](https://www.letmecompile.com/xcode-lldb-%EB%94%94%EB%B2%84%EA%B9%85-
%ED%85%8C%ED%81%AC%EB%8B%89/)

[LLDB Debugging Cheat Sheet](https://gist.github.com/alanzeino/82713016fd6229ea43a8)

[Debugging a Debugger](http://idrisr.com/2015/10/12/debugging-a-debugger.html)

https://kapeli.com/cheat_sheets/LLDB_Chisel_Commands.docset/Contents/Resources/Documents/index

http://ios.137422.xyz/83589/

https://jayeshkawli.ghost.io/advanced-debugging-in-ios/

https://www.slideshare.net/YiyingTseng/debug-lldb-86558535

https://medium.com/flawless-app-stories/debugging-swift-code-with-lldb-b30c5cf2fd49

https://dailyhotel.io/advanced-debugging-with-xcode-and-lldb-8e8dc5326167

https://pspdfkit.com/blog/2018/how-to-extend-lldb-to-provide-a-better-debugging-experience/
QnA

More Related Content

Similar to [TECHCON 2019: MOBILE - iOS]3.쉽고 재미있는 iOS 디버깅 - LLDB Command

BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 Linaro
 
The LLDB Debugger in FreeBSD by Ed Maste
The LLDB Debugger in FreeBSD by Ed MasteThe LLDB Debugger in FreeBSD by Ed Maste
The LLDB Debugger in FreeBSD by Ed Masteeurobsdcon
 
Specialized Compiler for Hash Cracking
Specialized Compiler for Hash CrackingSpecialized Compiler for Hash Cracking
Specialized Compiler for Hash CrackingPositive Hack Days
 
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDB
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDBBattle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDB
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDBJesse Wolgamott
 
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)JiandSon
 
PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Languagezefhemel
 
From Android NDK To AOSP
From Android NDK To AOSPFrom Android NDK To AOSP
From Android NDK To AOSPMin-Yih Hsu
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: IntroductionJollen Chen
 
Syntactic Salt and Sugar Presentation
Syntactic Salt and Sugar PresentationSyntactic Salt and Sugar Presentation
Syntactic Salt and Sugar Presentationgrepalex
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalNAVER D2
 
HKG15-211: Advanced Toolchain Usage Part 4
HKG15-211: Advanced Toolchain Usage Part 4HKG15-211: Advanced Toolchain Usage Part 4
HKG15-211: Advanced Toolchain Usage Part 4Linaro
 
LLVM Workshop Osaka Umeda, Japan
LLVM Workshop Osaka Umeda, JapanLLVM Workshop Osaka Umeda, Japan
LLVM Workshop Osaka Umeda, Japanujihisa
 
[db tech showcase Tokyo 2017] C23: Lessons from SQLite4 by SQLite.org - Richa...
[db tech showcase Tokyo 2017] C23: Lessons from SQLite4 by SQLite.org - Richa...[db tech showcase Tokyo 2017] C23: Lessons from SQLite4 by SQLite.org - Richa...
[db tech showcase Tokyo 2017] C23: Lessons from SQLite4 by SQLite.org - Richa...Insight Technology, Inc.
 
HKG15-207: Advanced Toolchain Usage Part 3
HKG15-207: Advanced Toolchain Usage Part 3HKG15-207: Advanced Toolchain Usage Part 3
HKG15-207: Advanced Toolchain Usage Part 3Linaro
 
Tailoring Redis Modules For Your Users’ Needs
Tailoring Redis Modules For Your Users’ NeedsTailoring Redis Modules For Your Users’ Needs
Tailoring Redis Modules For Your Users’ NeedsRedis Labs
 
Golang execution modes
Golang execution modesGolang execution modes
Golang execution modesTing-Li Chou
 

Similar to [TECHCON 2019: MOBILE - iOS]3.쉽고 재미있는 iOS 디버깅 - LLDB Command (20)

LLDB Introduction
LLDB IntroductionLLDB Introduction
LLDB Introduction
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64
 
The LLDB Debugger in FreeBSD by Ed Maste
The LLDB Debugger in FreeBSD by Ed MasteThe LLDB Debugger in FreeBSD by Ed Maste
The LLDB Debugger in FreeBSD by Ed Maste
 
Specialized Compiler for Hash Cracking
Specialized Compiler for Hash CrackingSpecialized Compiler for Hash Cracking
Specialized Compiler for Hash Cracking
 
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDB
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDBBattle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDB
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDB
 
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
 
GCC LTO
GCC LTOGCC LTO
GCC LTO
 
PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Language
 
From Android NDK To AOSP
From Android NDK To AOSPFrom Android NDK To AOSP
From Android NDK To AOSP
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 
js-tech-stack.pdf
js-tech-stack.pdfjs-tech-stack.pdf
js-tech-stack.pdf
 
Syntactic Salt and Sugar Presentation
Syntactic Salt and Sugar PresentationSyntactic Salt and Sugar Presentation
Syntactic Salt and Sugar Presentation
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
 
HKG15-211: Advanced Toolchain Usage Part 4
HKG15-211: Advanced Toolchain Usage Part 4HKG15-211: Advanced Toolchain Usage Part 4
HKG15-211: Advanced Toolchain Usage Part 4
 
LLVM Workshop Osaka Umeda, Japan
LLVM Workshop Osaka Umeda, JapanLLVM Workshop Osaka Umeda, Japan
LLVM Workshop Osaka Umeda, Japan
 
[db tech showcase Tokyo 2017] C23: Lessons from SQLite4 by SQLite.org - Richa...
[db tech showcase Tokyo 2017] C23: Lessons from SQLite4 by SQLite.org - Richa...[db tech showcase Tokyo 2017] C23: Lessons from SQLite4 by SQLite.org - Richa...
[db tech showcase Tokyo 2017] C23: Lessons from SQLite4 by SQLite.org - Richa...
 
HKG15-207: Advanced Toolchain Usage Part 3
HKG15-207: Advanced Toolchain Usage Part 3HKG15-207: Advanced Toolchain Usage Part 3
HKG15-207: Advanced Toolchain Usage Part 3
 
Tailoring Redis Modules For Your Users’ Needs
Tailoring Redis Modules For Your Users’ NeedsTailoring Redis Modules For Your Users’ Needs
Tailoring Redis Modules For Your Users’ Needs
 
fullstack-nextjs.pdf
fullstack-nextjs.pdffullstack-nextjs.pdf
fullstack-nextjs.pdf
 
Golang execution modes
Golang execution modesGolang execution modes
Golang execution modes
 

More from NAVER Engineering

디자인 시스템에 직방 ZUIX
디자인 시스템에 직방 ZUIX디자인 시스템에 직방 ZUIX
디자인 시스템에 직방 ZUIXNAVER Engineering
 
진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)NAVER Engineering
 
서비스 운영을 위한 디자인시스템 프로젝트
서비스 운영을 위한 디자인시스템 프로젝트서비스 운영을 위한 디자인시스템 프로젝트
서비스 운영을 위한 디자인시스템 프로젝트NAVER Engineering
 
BPL(Banksalad Product Language) 무야호
BPL(Banksalad Product Language) 무야호BPL(Banksalad Product Language) 무야호
BPL(Banksalad Product Language) 무야호NAVER Engineering
 
이번 생에 디자인 시스템은 처음이라
이번 생에 디자인 시스템은 처음이라이번 생에 디자인 시스템은 처음이라
이번 생에 디자인 시스템은 처음이라NAVER Engineering
 
날고 있는 여러 비행기 넘나 들며 정비하기
날고 있는 여러 비행기 넘나 들며 정비하기날고 있는 여러 비행기 넘나 들며 정비하기
날고 있는 여러 비행기 넘나 들며 정비하기NAVER Engineering
 
쏘카프레임 구축 배경과 과정
 쏘카프레임 구축 배경과 과정 쏘카프레임 구축 배경과 과정
쏘카프레임 구축 배경과 과정NAVER Engineering
 
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기NAVER Engineering
 
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)NAVER Engineering
 
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드NAVER Engineering
 
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기NAVER Engineering
 
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활NAVER Engineering
 
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출NAVER Engineering
 
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우NAVER Engineering
 
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...NAVER Engineering
 
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법NAVER Engineering
 
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며NAVER Engineering
 
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기NAVER Engineering
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기NAVER Engineering
 

More from NAVER Engineering (20)

React vac pattern
React vac patternReact vac pattern
React vac pattern
 
디자인 시스템에 직방 ZUIX
디자인 시스템에 직방 ZUIX디자인 시스템에 직방 ZUIX
디자인 시스템에 직방 ZUIX
 
진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)
 
서비스 운영을 위한 디자인시스템 프로젝트
서비스 운영을 위한 디자인시스템 프로젝트서비스 운영을 위한 디자인시스템 프로젝트
서비스 운영을 위한 디자인시스템 프로젝트
 
BPL(Banksalad Product Language) 무야호
BPL(Banksalad Product Language) 무야호BPL(Banksalad Product Language) 무야호
BPL(Banksalad Product Language) 무야호
 
이번 생에 디자인 시스템은 처음이라
이번 생에 디자인 시스템은 처음이라이번 생에 디자인 시스템은 처음이라
이번 생에 디자인 시스템은 처음이라
 
날고 있는 여러 비행기 넘나 들며 정비하기
날고 있는 여러 비행기 넘나 들며 정비하기날고 있는 여러 비행기 넘나 들며 정비하기
날고 있는 여러 비행기 넘나 들며 정비하기
 
쏘카프레임 구축 배경과 과정
 쏘카프레임 구축 배경과 과정 쏘카프레임 구축 배경과 과정
쏘카프레임 구축 배경과 과정
 
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
 
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
 
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
 
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
 
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
 
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
 
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
 
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
 
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
 
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
 
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 

Recently uploaded

SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationZilliz
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 

Recently uploaded (20)

SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 

[TECHCON 2019: MOBILE - iOS]3.쉽고 재미있는 iOS 디버깅 - LLDB Command

  • 1.
  • 2.
  • 3. • 現 iOS (16.10 ~ ) • : minsone.github.io
  • 4. • LLDB • LLDB • Execution Commands • Evaluating Expression • Script - Python REPL • Chisel • QA
  • 6. • Apple Xcode LLVM • LLVM - LLDB • https://lldb.llvm.org/ LLDB
  • 11. # Thread 2 (lldb) thread select 2 (lldb) t 2
  • 12. # stack backtrace (lldb) thread backtrace (lldb) bt
  • 13. # stack backtrace (lldb) thread backtrace all (lldb) bt all
  • 14. # stack backtrace frame (lldb) thread backtrace -c 5 # 0~4 frame (lldb) bt 5 # 0~4 frame (lldb) thread backtrace -s 5 -c 10 # 5~14 frame
  • 15. frame
  • 16. # frame index (lldb) frame select 3 # 3 Frame (lldb) frame info (lldb) fr s 0 # 0 Frame (lldb) fr info
  • 17. # frame (lldb) up # frame select -relative=1 (lldb) up 3 #fr s -r3 (lldb) down # frame select -relative=-1 (lldb) down 4 # fr s -r-4
  • 18. # frame (lldb) frame variable [ ] # fr v [ ] (lldb) frame variable --format x [ ] # fr v -f x [ ] (lldb) frame variable -o [ ] # fr v -o [ ]
  • 19. # global (lldb) target variable (lldb) target variable [ ]
  • 21. # frame (lldb) thread step-in (lldb) step (lldb) s
  • 22. # frame (lldb) thread step-out (lldb) finish
  • 23. # / (lldb) thread until 23 (lldb) thread until --frame 2 10
  • 24. # / (1) - Command (lldb) thread until 21 (lldb) thread jump --line 19 (lldb) thread jump --by -2
  • 25. # (2) - Drag
  • 27. • LLDB . • . • Pause Swift . • p, po, fr v . Evaluating Expression
  • 28. • Expression • • LLDB . Evaluating Expression
  • 29. #
  • 30. # Expression # Print # Print Object
  • 31. Evaluating Expression Command Alias for Execute po [expession] expression -Object-description -- Code , debugDescription description LLDB formatter p [expression] expression -- Code LLDB formatter v / fr v [name] frame variable Code , LLDB formatter
  • 32. Evaluating Expression Command Alias for Execute po [expession] expression -Object-description -- Code , debugDescription description LLDB formatter p [expression] expression -- Code LLDB formatter v / fr v [name] frame variable Code , LLDB formatter
  • 33. “po” Under the Hood (lldb) po view : WWDC19 - LLDB: Beyond “po"
  • 34. “po” Under the Hood (lldb) po view Create compilable code : WWDC19 - LLDB: Beyond “po"
  • 35. func __lldb_expr() {
 __lldb_res = view
 } “po” Under the Hood (lldb) po view Create compilable code : WWDC19 - LLDB: Beyond “po"
  • 36. “po” Under the Hood (lldb) po view Create compilable code Compile : WWDC19 - LLDB: Beyond “po"
  • 37. “po” Under the Hood (lldb) po view Create compilable code Compile Execute Get result : WWDC19 - LLDB: Beyond “po"
  • 38. func __lldb_expr2 -> String() {
 return __lldb_res.description
 } “po” Under the Hood (lldb) po view Create compilable code Compile Execute Create code to access description Get result : WWDC19 - LLDB: Beyond “po"
  • 39. “po” Under the Hood (lldb) po view Create compilable code Compile Execute Create code to access description CompileGet result : WWDC19 - LLDB: Beyond “po"
  • 40. “po” Under the Hood (lldb) po view Create compilable code Compile Execute Create code to access description Compile ExecuteGet result : WWDC19 - LLDB: Beyond “po"
  • 41. “po” Under the Hood (lldb) po view Create compilable code Compile Execute Create code to access description Compile ExecuteGet result “<UIView: 0x12345678>” : WWDC19 - LLDB: Beyond “po"
  • 42. “po” Under the Hood (lldb) po view Get string result Create compilable code Compile Execute Create code to access description Compile ExecuteGet result Display result string : WWDC19 - LLDB: Beyond “po"
  • 43. Evaluating Expression Command Alias for Execute po [expession] expression -Object-description -- Code , debugDescription description LLDB formatter p [expression] expression -- Code LLDB formatter v / fr v [name] frame variable Code , LLDB formatter
  • 44. “p” Under the Hood (lldb) p cruise : WWDC19 - LLDB: Beyond “po"
  • 45. “p” Under the Hood Create compilable code Compile Execute Get result (lldb) p cruise : WWDC19 - LLDB: Beyond “po"
  • 46. “p” Under the Hood Dynamic type resolution Create compilable code Compile Execute Get result (lldb) p cruise : WWDC19 - LLDB: Beyond “po"
  • 47. “p” Under the Hood (lldb) p cruise Create compilable code Compile Execute Get result Formatter Dynamic type resolution : WWDC19 - LLDB: Beyond “po"
  • 48. Evaluating Expression Command Alias for Execute po [expession] expression -Object-description -- Code , debugDescription description LLDB formatter p [expression] expression -- Code LLDB formatter v / fr v [name] frame variable Code , LLDB formatter
  • 49. “v” Under the Hood (lldb) v variable : WWDC19 - LLDB: Beyond “po"
  • 50. “v” Under the Hood (lldb) v variable (lldb) v variable : WWDC19 - LLDB: Beyond “po"
  • 51. “v” Under the Hood Examine program state (lldb) v variable (lldb) v variable : WWDC19 - LLDB: Beyond “po"
  • 52. “v” Under the Hood Examine program state Read value from memory (lldb) v variable (lldb) v variable : WWDC19 - LLDB: Beyond “po"
  • 53. “v” Under the Hood Examine program state Read value from memory Dynamic type resolution (lldb) v variable (lldb) v variable : WWDC19 - LLDB: Beyond “po"
  • 54. “v” Under the Hood Examine program state Read value from memory Dynamic type resolution (lldb) v variable.field1 (lldb) v variable : WWDC19 - LLDB: Beyond “po"
  • 55. “v” Under the Hood Examine program state Read value from memory Dynamic type resolution (lldb) v variable.field1 .field2 (lldb) v variable : WWDC19 - LLDB: Beyond “po"
  • 56. “v” Under the Hood Examine program state Read value from memory Dynamic type resolution (lldb) v variable.field1 .field2 Formatter(lldb) v variable : WWDC19 - LLDB: Beyond “po"
  • 57. • • . • . Evaluating Expression
  • 60. #
  • 62. • Python LLDB Script . Script - Python REPL # Execute Script # Import # Default import
  • 65.
  • 66.  Advanced Apple Debugging and Reverse Engineering
 
 from. Raywenderlich
  • 67. LLDB: Beyond "po" - https://developer.apple.com/videos/play/wwdc2019/429/ [Apple - LLDB Quick Start Guide](https://developer.apple.com/library/archive/documentation/IDEs/Conceptual/ gdb_to_lldb_transition_guide/document/Introduction.html#//apple_ref/doc/uid/TP40012917-CH1-SW1) [UIKonf18 – Day 1 – Carola Nitz – Advanced Debugging Techniques](https://www.youtube.com/watch?v=578YdS2sNqk) [Advanced Debugging with Xcode and LLDB](https://developer.apple.com/videos/play/wwdc2018/412) [Chisel](https://github.com/facebook/chisel) [LLDB Chisel Commands](https://kapeli.com/cheat_sheets/LLDB_Chisel_Commands.docset/Contents/Resources/Documents/ index) [More than `po`: Debugging in lldb](https://www.slideshare.net/micheletitolo/more-than-po-debugging-in-lldb) [Debugging RubyMotion applications](http://ruby-korea.github.io/RubyMotionDocumentation/articles/debugging/) [Xcode LLDB ](https://www.letmecompile.com/xcode-lldb-%EB%94%94%EB%B2%84%EA%B9%85- %ED%85%8C%ED%81%AC%EB%8B%89/) [LLDB Debugging Cheat Sheet](https://gist.github.com/alanzeino/82713016fd6229ea43a8) [Debugging a Debugger](http://idrisr.com/2015/10/12/debugging-a-debugger.html) https://kapeli.com/cheat_sheets/LLDB_Chisel_Commands.docset/Contents/Resources/Documents/index http://ios.137422.xyz/83589/ https://jayeshkawli.ghost.io/advanced-debugging-in-ios/ https://www.slideshare.net/YiyingTseng/debug-lldb-86558535 https://medium.com/flawless-app-stories/debugging-swift-code-with-lldb-b30c5cf2fd49 https://dailyhotel.io/advanced-debugging-with-xcode-and-lldb-8e8dc5326167 https://pspdfkit.com/blog/2018/how-to-extend-lldb-to-provide-a-better-debugging-experience/
  • 68. QnA