You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enable stack trace symbolization for OSS builds (#9687)
Summary:
Historically, HHVM statically linked the system libbfd to power stack trace symbolization in its crash reports and in perf map files. This was disabled for OSS in D2137703[1] because of the wildly differing libbfd ABI across target systems. D3742004[2] and D3855027[3] then brought in folly::Symbolizer for both use cases, but this remained gated behind a Meta-only define.
folly::Symbolizer has been stable in upstream folly for a while now, so let's enable it unconditionally and deshim the experimental/ header. This also allows removing the dead libbfd integration. For this to work, the folly build must be built with and able to find libunwind, which isn't a given when building against libc++ and LLVM libunwind on Ubuntu as it installs includes into a subdirectory, so provide an additional hint for this case.
This allows us to finally have a proper stacktrace rather than raw memory addresses in crash reports, such as:
```
Core dumped: Segmentation fault
Stack trace in /tmp/stacktrace.902095.log
Host: hhvm-jammy-vm
ProcessID: 902095
ThreadID: 281473658339392
ThreadPID: 902095
Name: /usr/local/bin/hhvm
CmdLine: hhvm ../hhvm/hphp/test/quick/dv.php
Type: Segmentation fault
Runtime: hhvm
Version: heads/7.70.0-slack-0-g7be53eff8d22faa0383a128696fae83b224aedd5
DebuggerCount: 0
Arguments: ../hhvm/hphp/test/quick/dv.php
ThreadType: CLI
-------------------------------Treadmill Information----------------------------
Now: 235093382994348
OldestStartTime: 235093373066177
InflightRequestsSize: 1
Active Requests:
281473658339392 1 235093373066177 (age 9ms) (timeout 0s) CLISession OLDEST
------------------------------------------------------------------------------
CPP Stacktrace:
# 0 HPHP::jit::FixupMap::processFixupForVMFrame(HPHP::jit::VMFrame)
# 1 HPHP::jit::FixupMap::fixupWork(HPHP::ActRec*, bool)
# 2 HPHP::jit::detail::syncVMRegsWork(bool)
# 3 HPHP::createBacktrace(HPHP::BacktraceArgs const&)
# 4 HPHP::f_debug_backtrace(long, long)
# 5 HPHP::throwable_init(HPHP::ObjectData*)
# 6 HPHP::ObjectData* HPHP::ObjectData::newInstance<false>(HPHP::Class*)
# 7 HPHP::SystemLib::AllocRuntimeExceptionObject(HPHP::Variant const&)
# 8 HPHP::SystemLib::throwRuntimeExceptionObject(HPHP::Variant const&)
# 9 HPHP::throwMissingArgument(HPHP::Func const*, int)
PHP Stacktrace:
#0 main() called at [/home/mszabo/hhvm/hphp/test/quick/dv.php:28]
#1 main_entry()
```
[1] a66dd13
[2] c11ad4e
[3] 0e082c4
Pull Request resolved: #9687
Reviewed By: paulbiss
Differential Revision: D88499314
fbshipit-source-id: dc2cbd5cdeab1533ae5fee26b3bf64fc7595cd8c
0 commit comments