No description
Find a file
Peter Collingbourne cf9f0870e4 Add support for tombstone symbolization to pbtombstone.
This patch teaches pbtombstone to use llvm-symbolizer to symbolize
stack traces and augment the protobuf tombstones with the symbol
information, before printing tombstones with the symbolized stack
traces included.

The main advantage of adding this information to the tombstone
as opposed to having developers use the stack tool is that stack
does not print all of the information in the original tombstone,
which means that both reports may be required to understand a crash.
Furthermore, stack traces printed by stack are not correlated with
the stack traces in the tombstone, making the report harder to read,
especially with GWP-ASan and MTE which may produce multiple stack
traces for the crashing thread.

Although we could teach stack to print more information, this would
continue to be fragile because stack relies on parsing textual
tombstones. Switching stack to read proto tombstones would be
tantamount to a full rewrite and would require duplicating the C++
proto-to-text logic that we already have in Python. It seems better
to reuse the C++ code for the proto-based symbolization tool.

llvm-symbolizer will look up the symbol files by build ID using a
.build-id directory following the standard here:
https://fedoraproject.org/wiki/RolandMcGrath/BuildID

It will look for .build-id directories under paths specified with
--debug-file-directory, which pbtombstone will pass through to
llvm-symbolizer using its own --debug-file-directory flag. The
intent is that tools for platform developers will pass the flag
--debug-file-directory $ANDROID_PRODUCT_OUT/symbols to pbtombstone.
Soong will start creating .build-id under symbols after a corresponding
Soong CL lands.

Bug: 328531087
Change-Id: Ia4676821cf980c69487cf11aefa2a02dc0c1626f
2024-10-30 14:43:25 -07:00
bootstat bootstat: avoid vector<const T> 2024-06-28 00:52:41 -07:00
cli-test [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
code_coverage Disable code_coverage.other for riscv64 2022-10-13 13:49:10 -07:00
debuggerd Add support for tombstone symbolization to pbtombstone. 2024-10-30 14:43:25 -07:00
diagnose_usb Support building diagnose_usb against musl 2021-12-16 14:04:06 -08:00
fastboot Move the dist target of mke2fs to build/core/tasks 2024-09-19 07:19:25 +00:00
fs_mgr Use uint64_t instead of size_t when calculating extent size to avoid overflow 2024-10-14 20:52:32 +00:00
gatekeeperd Check AServiceManager_isDeclared before AServiceManager_getService 2023-06-14 02:43:54 +00:00
healthd charger: fix show qustion mark when start to draw UI 2024-07-22 20:06:25 +08:00
include Remove include/backtrace symlink. 2020-10-20 12:46:14 -07:00
init Merge "init: Remove schedtune support" into main 2024-10-09 20:45:29 +00:00
janitors Add maco to OWNERS. 2024-05-06 13:22:28 +00:00
libappfuse [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
libasyncio Set min_sdk_version 2021-12-02 09:23:42 +09:00
libcrypto_utils Remove VNDK definition(s) 2024-03-15 08:19:44 +00:00
libcutils Revert "libprocessgroup: Remove cgroup.rc file" 2024-10-08 18:54:37 +00:00
libgrallocusage Make apex_available explicit 2022-02-09 11:37:19 -08:00
libkeyutils Make libfs_mgr dependencies vendor_ramdisk_available. 2021-07-23 16:50:06 -07:00
libmodprobe libmodprobe: use ordered map for deterministic module loading 2024-08-06 04:05:25 +00:00
libnetutils Remove VNDK definition(s) 2024-03-15 08:19:44 +00:00
libpackagelistparser parse_line: allow -1 for apexes and sdk libraries. 2024-04-26 15:30:30 +00:00
libprocessgroup Merge "libprocessgroup: Remove SetClamps action" into main 2024-10-15 22:56:36 +00:00
libsparse Make simg2img host-only 2023-08-28 09:53:30 -07:00
libstats Merge "Remove libstats*_lazy tests from MTS" into main 2024-10-08 02:13:26 +00:00
libsuspend libsuspend: vendor_available. 2021-11-02 13:52:40 -07:00
libsync Remove NDK exports 2024-09-03 20:40:28 +00:00
libsystem Add COLOR_MODE_DISPLAY_BT2020 to graphics header. 2022-12-01 22:25:40 -08:00
libsysutils Merge "Remove VNDK definition(s)" into main 2024-05-23 00:38:19 +00:00
libusbhost Remove VNDK definition(s) 2024-03-15 08:19:44 +00:00
libutils Avoid unnecessary allocation in VectorImpl 2024-10-08 08:36:03 +00:00
libvendorsupport Use __ANDROID_VENDOR_API__ for vendor API surface 2024-10-07 16:56:06 +09:00
libvndksupport try llndk-deprecate 2023-12-21 02:09:14 +00:00
llkd llkd: Disable in userdebug builds by default 2021-11-04 16:21:46 -07:00
mini_keyctl Remove alanstokes@google.com from mini_keyctl/OWNERS 2024-07-09 21:12:32 +00:00
mkbootfs mkbootfs: Allow invocation with no directories specified 2024-05-15 16:05:55 +00:00
property_service Remove OEM_UNLOCK_PROP usage 2024-09-22 03:51:29 +00:00
reboot [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
rootdir Merge "init: Remove schedtune support" into main 2024-10-09 20:45:29 +00:00
run-as run-as: remove a special case. 2023-11-10 22:02:00 +00:00
sdcard [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
shell_and_utilities Add cpu-target-features binary 2024-08-20 20:48:34 +00:00
storaged Update storaged to use Health AIDL HAL V3. 2023-12-11 11:59:23 -08:00
toolbox toolbox/modprobe: Load modules from /lib/modules based on page size 2024-06-11 18:41:49 -07:00
trusty trusty: tipc-test: Fix D argument 2024-10-09 11:23:32 +00:00
usbd usb: migration to USB gadget AIDL 2023-01-10 11:24:36 +08:00
watchdogd [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
.clang-format-2 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.clang-format-4 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
Android.bp Add dirgroup for trusty genrule 2024-10-10 18:21:29 +09:00
CleanSpec.mk snapshotctl don't auto-merge. 2020-03-03 13:19:49 -08:00
METADATA Add METADATA to system/core: Apache2+BSD=NOTICE 2020-04-29 13:16:41 -07:00
MODULE_LICENSE_APACHE2
OWNERS Add bug component to system/core 2023-07-26 07:57:58 -07:00
PREUPLOAD.cfg PREUPLOAD += bpfmt 2024-06-04 23:10:21 +00:00
rustfmt.toml Configure rustfmt for preupload hook 2022-04-06 21:11:09 +00:00