Book v0.9 Errata thread

This is for any errata related to the RWDevCon advance release edition of Advanced Apple Debugging & Reverse Engineering.

On page 31 there appears to be a mistake.

 3. If so, it prints a description of the view to stderr...

Should instead be

 3. If so, it prints a description of the view's class to stderr...

Page 50 of Advanced_Apple_Debugging_&_Reverse_Engineering_v0.9.5.pdf says:

You can augment the breakpoint by adding ^(@).* to the breakpoint, essentially saying “don’t let the function start with the @ character.”

Shouldn’t that be [1].* I.e, start with a character in the set that is not ‘@’?


  1. ^@ ↩︎

Page 15 of Advanced_Apple_Debugging_&_Reverse_Engineering_v0.9.5.pdf says:

Send any suggestions, comments, or ideas to support@razeware.com

but when I tried that, I got an email directing me here. It would have been better to be directed here directly.

This is for v1.0 of the book, though it may also be in earlier versions as well.

On page 315 in chapter 22, you show the command for looking up “all Objective-C methods that begin with initWith, and only contain 2 parameters,” as:

(lldb) lookup initWith(\w+\:){2,2}\]

However, using that command verbatim results in 0 matches. One needs to either quote the lookup regex: (lldb) lookup 'initWith(\w+\:){2,2}\]', or escape the backslashes: (lldb) lookup initWith(\\w+\\:){2,2}\\] in order to get results. Otherwise those backslashes get filtered out of the input.

1 Like

In version 1.0 and possibly earlier:

Chapter 27, page 415: In order to filter out retain and release calls, you change the main clause predicate to:

pid$target::objc_msgSend:entry / arg0 > 0x100000000 / &&
                    this->selector != "retain" &&
                    this->selector != "release" /

However, that second slash on the first line should have been removed, otherwise the reader will get a syntax error near "&&" error when they try to run the script. This needs to be fixed for both code blocks on that page.

Version 1.0

PAGE 41, should be EXITS IMMEDIATELY and not exists???

The -n option tells LLDB not to create a stdin; therefore wc has no data to work with and exists immediately.

Version 1.0

I skipped to the end to read the conclusion,so there is a SPACE in the URL as “ingham”
the URL should be User Jim Ingham - Stack Overflow

If you want the equivalent of an LLDB newsletter, I would recommend to (nicely!) stalk Jim Ingram’s activity on Stack Overflow Users - Stack Overflow 2465073/jim-ingham.