I noticed some typos/technical errors while reading the book.
I didn’t find a way to contact the author directy, so I decided to post them here in the hope they will end up in the correct place.
(I have the “Up to date for Xcode 10” edition. I didnt check if these errors are already fixes in a future version)
PS I have no clue who “Ray” is and feel like I’m missing out on a lot of inside jokes
Typos / textual errors
chapter 3 - p45 - any combination of environement → environment
chapter 4 - p50 - Internally this projects montors → moniters
chapter 4 - p50 - you can either raise a Signal → signal – this is not a reference to the app name
chapter 4 - p55 - this time showing the implementation address and → remove and
chapter 6 - p86 - Relaunch the Breakpoints program – Signals program
chapter 6 - p88 - or a dYSM – dSYM
chapter 7 - p92 - These to modules – two
chapter 8 - p110 - note box - “and is frankly, a more powerful … than” - weird sentence, probable need to remove a
chapter 11 - p140 - “Yes, that’s different than the assembly you see in the disassembly view! Annoying, eh?” - this sentence seems completely misplaced here, probably should be removed completely
chapter 12 - p164 - the box shows “push rbp”, but in the text it says “pushq rbp” twice
chapter 19 - p296 - in the image at the top of the page it says _replacment → should be _replacement. Its just a variable name so I guess it doesnt really matter. Same typo in the provided sample code
chapter 20 - p311 - provisioning profile that inlcudes → includes
chapter 24 - p373 - the help text for the function “generateOptionParser” makes no sense for this function
chapter 24 - p382 - at the bottom it says that “you will apply this condition to fullName to find ‘Ray Wenderlich’”, but this exercise is never done/missing
chapter 25 - p398 - doesn’t contain this varible name – variable
chapter 25 - p400 - the box shows 0x0000000000000002, the text says 0x0000000200000004
chapter 25 - p411 - a set of header files that a referenced – are
chapter 27 - p442 - incorrect bold - sometimes “~/lldb directory” is bold, and sometimes only “~/lldb” is
chapter 28 - p454 - the stack frame listed on the top of this page is no longer correct, frame #1 is now “malloc_print_configure”. The references to “frame #1” on this page are now also incorrect
chapter29 - p479 - in box (twice) it says NameOFProcess - should be NameOfProcess
chapter30 - p496 - bottom of page in the text snippet for clause-local variables lists “this-f”, should be “this->f”
chapter31 - p516 - the section “scary assembly part 1” is not of the same header type as “scary assembly part 2” on the next page, causing only one of them to be included in the table of contents
chapter 31 - p526 - bottom of the page, listing of dtrace script has an incorrect “/” before “&&”. This should be removed.
chapter31 - p531 - just below the text box it says that the interesting part is that arg0 will be filtered for > 0x1000000. It should probably say the interesting part is that it now checks against the __DATA section. The other check was alread introduced a couple of pages ago.
Some technical errors / remarks
chapter 11 - p143 - (lldb) breakpoint set -o true -S “-[NSWindow mouseDown:]”
this doest work, might either be “-n” or “–name” instead of “-S”, or if you want to do by selector it should be “mouseDown:”
chapter 15 - p211 - this big lookup regex didnt work for me, but when I replaced \w with [a-zA-Z0-9_] it did. Did not debug it further
chapter 19 - p291 - (lldb) platform shell objdump -lazy-bind ${APP_PATH} | grep ${RANDOM_FUNC_FUNC}
this synxtax is incorrect. should at least be “–lazy-bind”, but I actually need to run “-l --lazy-bind” else it just printed the help
chapter 25 - all “script print” statements in the example are missing parenthesis for python3 syxtax. actually everywhere in the book
chapter 25 - p413 - (lldb) script print c.firstName.sbvalue.signed
all steps worked, but this one returns “0”. did not debug it further
chapter 24 -
- the explanation in the text of returning True or False does not work as explained.
- the provided “final” solution doesnt work
also see Chapters 23-24 - Stop on each breakpoint without honouring return value where someone reports the same issue on the forums
chapter 27 - p444 - key = long(…)
long() is not defined in this contex, should be int()?
chapter 28 - p454 - (lldb) lookup (?i)log -m libsystem_malloc.dylib
this synxtax returned 0 results, but removing the “(?i)” part worked. Not sure because it looks valid, didnt debug it any further.
chapter 28 - p465 - “(lldb) search SwiftObject”
all steps until here worked, but this doesnt return any results.
chapter 28 - p465 - “(lldb) search SwiftObject” – cant find class named SwiftObject. Did not debug this any further