3 ms·
Pretty low-tech, but what we do is to create an md5 hash of the whole stack trace as a single string. Before hashing, we munge some bits to help make similar s
by wallstprog 7y ago
Pretty low-tech, but what we do is to create an md5 hash of the whole stack trace as a single string. Before hashing, we munge some bits to help make similar stack traces hash to the same value:
- remove file/line#
- omit the bottom (top) frame, which can be different between environments
- convert certain constructs to a common format (e.g., "unknown module" (clang) to "???" (valgrind)
- translate "func@@GLIBC_version" => "func"
This works well enough in practice for our purposes (identifying regressions and suppressing specific reports from valgrind/Address Santizer).
We also maintain a xref between md5 hash and full stack trace.