Fuchsia doesn't support built-in symbolization per se at all.
Instead, it always emits a Fuchsia-standard "symbolizer markup"
format that makes it possible for a post-processing filter to
massage the logs into symbolized format. Hence, it does not
support user-specified formatting options for backtraces or other
symbolization.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/sanitizer_common/sanitizer_stacktrace_printer.cc | ||
---|---|---|
128 ↗ | (On Diff #108732) | How about having implementation of RenderFrame and RenderData in sanitizer_symbolizer_fuchsia.cc? #if !FUCHSIA const AddressInfo &info, bool vs_style, const char *strip_path_prefix, const char *strip_func_prefix) { ... } void RenderData(InternalScopedString *buffer, const char *format, |
lib/sanitizer_common/sanitizer_stacktrace_printer.cc | ||
---|---|---|
20 ↗ | (On Diff #108740) | I don't think this comment is necessary |
lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc | ||
32 ↗ | (On Diff #108740) | Regular array is shorter const char kFormatDemangle[] = |
47 ↗ | (On Diff #108740) | Why not just override PlatformInit? |
lib/sanitizer_common/sanitizer_stacktrace_printer.cc | ||
---|---|---|
20 ↗ | (On Diff #108740) | You really prefer few comments??? |
lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc | ||
32 ↗ | (On Diff #108740) | constexpr is correct for this use. The compiler should know that it's just a vanilla string constant and doesn't need to be an independent link-time object. |
47 ↗ | (On Diff #108740) | Because then GetOrInit would be the only thing from sanitizer_symbolizer_libcdep.cc actually used and it's cleaner to #if out the entire file. |
lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc | ||
---|---|---|
47 ↗ | (On Diff #108740) | Please do move GetOrInit to sanitizer_symbolizer.cc and implement PlatformInit and exclude sanitizer_symbolizer_libcdep.cc from Fuchsia build, that #if-ing the entire file is ugly. |
lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc | ||
---|---|---|
47 ↗ | (On Diff #108740) | I've moved GetOrInit and implemented PlatformInit. I didn't change to cmake conditionalization instead of #if around the whole file because that would be inconsistent with the rest of the source code, which uses #if around the whole file for other cases like this one. |
I've moved GetOrInit and implemented PlatformInit.
This is rebased and ready to land after D36031 lands.
Please land it for me!
Thanks,
Roland
ninja check-sanitizer
fails Sanitizer-x86_64-Test-Nolibc test
llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc:27: error: undefined reference to '__sanitizer::Symbolizer::PlatformInit()'
Moved GetOrInit back to sanitizer_symbolizer_libcdep.cc, hoisted up out of #if !SANITIZER_FUCHSIA.