Ladění iOS aplikací nejen v Xcode [For Mobile červen 2013]

Embed Size (px)

DESCRIPTION

Ladění prostě patří k vývoji, mnozí však tuto činnost dělají velice neradi a Xcode nám to příliš nezpříjemňuje. Přijďte se naučit správně zacházet s vyjímkami, vyznat se se výpisech stack framů, používat jiné nástroje než Xcode a celkově efektivně ladit programy.

Text of Ladění iOS aplikací nejen v Xcode [For Mobile červen 2013]

  • 1. Ladn iOS aplikacnejen v Xcode@kubabreckaiosak.cz

2. LLDB! Pokus Applu udlat GDB znovu a lpe! Xcode pouv LLDB bhem ladn! vechno, co jde udlat v Xcode, jde udlat i z pkazovkonzole 3. Zklady ladn! breakpoints! watchpoints! exception breakpoint! printf, NSLog! konzole LLDB! po 4. Klvesov zkratky! Vchoz:! build Cmd+B! run Cmd+R! stop Cmd+.! show/hide console Cmd+Shift+Y! zloky vlevo Cmd+1, Cmd+2, ! Zmte si:! step into F11! step over F10! run/pause F5! step out Shift+F11 5. Jak zkrotit vjimku?! Nen vjimka jako vjimka! NSException @throw! C++ vjimka throw! Vjimka procesoru EXC_ARITHMETIC! Signl SIGBUS 6. Co je to za vjimku?! Vybrat prvn frame na stacku! po $eax / po $r0 7. Nebojte se cizch stack fram 8. Kdy chytit vjimku?! on throw! on catch! u je pozd, nemme stack trace! nejradji bychom on throw if will not be caught 9. Zombie objects! K nezaplacen pi ladn pokozen pamti! Signalizace:! EXC_BAD_ACCESS! vjimky v bnch funkcch objc_retain, objc_release! unrecognized selector sent to instance! obsah promnnch nedv smysl 10. Guard Malloc! Detekce pokozen pamti! buer overrun! double-free! Alokuje objekty do samostatnch strnek! Pi dealokaci! kontroluje okol objektu! strnku fyzicky zneplatn 11. Retain loops! Signalizace:! Stle se zvyuje pamov zt procesu! Instruments Leaks 12. po! po $eax! po self! po [[UIApplication sharedApplication] keyWindow]! po [self.view recursiveDescription] 13. Breakpointy! dek v kdu! metoda (i ciz)! b -[UIView setFrame:]! selektor (pro libovoln object)! breakpoint set S initWithFrame: 14. Breakpointy! Breakpoint actions! Breakpoint conditions! Watchpoints 15. LLDB command-line! Persistent objects! po $0 = object! nemn retain count (!)! p, po, expr 16. UI hierarchie! Reveal.app! Spark Inspector 17. Live modify! Cycript! superDB 18. Novinky v Xcode 5! Debug Gauges! Visualizations! Data formatters! Summaries, synthetic children! v Pythonu 19. Ponauen! Ladc arzenl je velk! Vas poznejte, kdy ladnm ztrcte pli mnoho asu! Chyb vm njak nstroj/postup pro ladn? Vytvote siho!! - (void)description { }! Jste v koncch? Napite mi J 20. Otzky? 21. Otzky?Dkuji za pozornost.Kuba Beka@kubabreckakubabrecka.comiosak.cz