Skip to content

Latest commit

ย 

History

History
95 lines (43 loc) ยท 2.42 KB

LLDBBeyondPo.md

File metadata and controls

95 lines (43 loc) ยท 2.42 KB

@ WWDC 19

po: print object description

CustomDebugStringConvertible ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•˜๊ณ , debugDescription ์„ ์ž‘์„ฑํ•˜๋ฉด ๊ธฐ๋ณธ description ๋Œ€์‹  debugDescription ์ด ๋ณด์—ฌ์ง„๋‹ค.

po ๋Š” expression --object-description์˜ alias์ด๋‹ค.

command alias my_po expression --object-description

์œผ๋กœ po ๋Œ€์‹  my_po๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

429_1

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ po๊ฐ€ ์ž‘๋™ํ•œ๋‹ค. ์ปดํŒŒ์ผ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰์„ ์‹œ์ผœ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์ ์„ ๊ฐ€์ง„๋‹ค.

po ๋ง๊ณ  p command๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. $R0, $R1 ๊ณผ ๊ฐ™์€ ํ‘œํ˜„์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

po์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ p๋„ expression์˜ alias์ด๋‹ค.

429_2

p๋Š” ์ƒ๋Œ€์ ์œผ๋กœ po๋ณด๋‹ค ๊ฑฐ์น˜๊ฒŒ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์งง๋‹ค. ์‹คํ–‰ ์†๋„๋„ po์— ๋น„ํ•ด ์ด์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋Ÿฐํƒ€์ž„์— ์•„๋ž˜์™€ ๊ฐ™์€ ํƒ€์ž… ์ถ”๋ก ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

429_3

v๋Š” p๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋น ๋ฅด๋‹ค. ๊ทธ ์ด์œ ๋Š” ์ปดํŒŒ์ผ์„ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ปดํŒŒ์ผ์„ ํ•˜์ง€ ์•Š๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ณด๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

429_4

๊ฐ ํ‚ค์›Œ๋“œ์˜ ํŠน์ง•์„ ์š”์•ฝํ•˜์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

429_5

Customizing Data Formatters

๊ธฐ๋ณธ์ ์ธ data formatter๋Š” ์ด๋ฏธ ํ›Œ๋ฅญํ•ด์„œ ์ง์ ‘ ๋งŒ๋“  ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ๋‚˜ ์• ํ”Œ์ด ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค์—์„œ๋‚˜ ๋ฐ์ดํ„ฐ๋“ค์„ ์ž˜ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ debugging์„ ํ•  ๋•Œ ๋ณด์—ฌ์ง€๋Š” data๋“ค์ด ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์งˆ ์ง€์— ๋Œ€ํ•ด data formatter๋ฅผ ์ปค์Šคํ…€ํ•ด์„œ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • filters
  • string summaries
  • synthetic children

filters

filter๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ์˜ˆ์‹œ

429_6

String summaries

Xcode์˜ variable view์— ๋‚˜์˜ค๋Š” ๋‚ด์šฉ์„ ์ปค์Šคํ…€ํ•œ๋‹ค.

429_7

429_8

Python Formatter

Python 3๋ฅผ ์ด์šฉํ•ด์„œ LLDB์˜ Python API์— ์ ‘๊ทผํ•˜๋ฉด ์ข€ ๋” ์ •๊ตํ•œ formatting์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

429_9

script ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด python formatting์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

command script import Trip.py

์œ„์™€ ๊ฐ™์€ ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด script import๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

Synthetic Children

Python API๋ฅผ ์ด์šฉํ•ด์„œ children์„ ์ปค์Šคํ…€ํ•œ๋‹ค.

429_10