workerd icon indicating copy to clipboard operation
workerd copied to clipboard

workerd: macOS symbolication does not work

Open ohodson opened this issue 2 years ago • 1 comments

Symbolication with llvm-symbolizer was enabled for the workerd github runners in test.yml in #1247.

Shortly after, it was suspended for macOS in commit ad20f5e039d34 in PR #1283 when additional build configurations were added because it leads to test timeouts. The symbol search process appears to be slow / misconfigured and the CPU and storage capabilities of the free-tier github runners are limited.

We've had issues with macOS, symbols for LLVM, and bazel build. workerd explicitly sets a source-map for debugging. The problem in this ticket is likely related.

I've spent a day or two looking into this, but have not cracked it. This ticket is just to track that we have a problem here. The next step is to collect fs activity from llvm-symbolizer, macOS is very different from Linux / Windows; procmon on windows is king :-). For macOS, it looks like it needs System Integrity Protection turning off and then finding a dtrace based tool for the fs activity (opensnoop or some-such).

It would also be good to fix this as a reasonable proportion of workerd users have macOS machines and they have no chance of reporting stack traces even if they want to.

A couple of related observations:

  1. macOS has it's own backtrace_symbols function. This might be more expedient to use since it should give meaningful stacks without needing to run an additional tool.

  2. llvm-symbolizer has a --filter-markup option that consumes symbolizer markup. This probably post-dates the code used in workerd (capnproto) and might make things marginally cleaner.

ohodson avatar Oct 24 '23 11:10 ohodson

解决了一下版本依赖产生的编译问题,目前用1.78.0编译是没问题的

reison1218 avatar May 13 '24 11:05 reison1218