Bottom-up, stop at yours
A stack trace is the crash at the bottom and the call path above it, innermost frame first. Read the last line for the what, then scan up for the first frame that belongs to your code. That line number is where you put the print or the breakpoint.
Library frames are noise
Frames inside a library tell you it was called, not that it is wrong. Unless the library itself is the suspect, skip those frames and go to the first one that is yours. This is why the trace is read from the bottom, not the top.