Apologies for the delay, and thank you for the information and thoughts you have provided!
I do have some clarifying questions about how to continue, plus some additional information that may help as well.
First, I am trying to reconcile what appears to be a contradiction between the concept that any code change has the potential to move/eliminate/introduce a crash by “rearranging the internal details of our code”, and that one way to pinpoint the crash is to add logging, which is itself a code change that will “rearrange” things. I noticed that you specifically said "carefully added” logging - by that do you mean making sure the logging doesn’t somehow cause a “rearrangement” of the internal details of the code? If so, how does one go about doing that?
Next, I am still trying to understand how a particular arrangement of our code can cause NULL to be “run”. Is there a contrived code example of how to accomplish this if for some reason one wanted to cause such a crash? If so, I am hoping that having an understanding of how this can actually occur will allow for better analysis of our code, and ideally detection of the true source of these crashes.
Finally, we discovered a new-to-us option when stepping after hitting a breakpoint (step into instruction, holding down ctrl). After placing a breakpoint on the line where Xcode says the app crashes in our code, stepping into the instructions, and stepping into instruction repeatedly for a while (~25 times), it will eventually crash and show error: memory read failed for 0x0. See attached screenshots of the instructions that are executed right before the crash, and then the memory read failed message. Is this a clue worth pursuing?
Thank you again for all of your assistance thus far!
Topic:
Developer Tools & Services
SubTopic:
General
Tags: