--- /dev/null
+Fix impossible stack traces (callers and callees cross called, orphans and
+incorrect lines) in the Tachyon profiler when caching frames, by snapshotting
+the stack chunks before walking the frame chain on a cache miss. Patch by
+Maurycy Pawłowski-Wieroński.
return full_hit < 0 ? -1 : 0;
}
+ assert(ctx->chunks != NULL);
+
+ if (ctx->chunks->count == 0) {
+ if (copy_stack_chunks(unwinder, ctx->thread_state_addr, ctx->chunks) < 0) {
+ PyErr_Clear();
+ }
+ }
+
Py_ssize_t frames_before = PyList_GET_SIZE(ctx->frame_info);
if (process_frame_chain(unwinder, ctx) < 0) {