No description
Find a file
Christopher Ferris 469b62a334 Use fallback linker allocator in trace_handler.
There is more than one function that can allocate in the fallback
path. Therefore, make sure that all functions that can allocate have
switched to the fallback linker allocator before allocating. This
is mostly a problem for the trace_handler function call, which iterates
over all known threads and gets backtraces for them.

Add a ScopedUseFallbackAllocator class to do the switching to make it
easier to have the same code everywhere.

Add two tests to verify that no allocations are occuring during
a tombstone or backtrace on the fallback path. These tests are not
comprehensive since they can't verify that the linker allocator is
using the fallback allocator, but they are better than nothing.

Remove the debuggerd_fallback_tombstone() function since it only
enables the linker callback and then calls engrave_tombstone_ucontext().
The enabling is now done with the ScopedUseLinkerAllocator.

Restructure the case where sending the signal to a thread fails so
that the fallback allocator can be enabled properly.

Bug: 359692763

Test: Ran debuggerd -b <PID> and debuggerd <PID> on a process that
Test: goes throught the fallback path.
Test: Unit tests pass along with two new tests.
Test: Forced a fallback process to crash and verified tombstone generated.
Test: Instrumented the linker allocator and verified that the trace_handler
Test: function never calls the normal linker allocator as it runs.
Change-Id: I2710921076634eac97f41bec8c3a29c1d75ae5ec
2024-09-04 01:13:04 +00: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 Use fallback linker allocator in trace_handler. 2024-09-04 01:13:04 +00:00
diagnose_usb Support building diagnose_usb against musl 2021-12-16 14:04:06 -08:00
fastboot libc++fs is part of libc++ now. 2024-06-04 16:47:32 +00:00
fs_mgr Move snapuserd_test to general-tests 2024-08-23 04:02:09 +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 init: remove interface checks from init 2024-08-21 17:44:09 +09: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 There's only one <sys/system_properties.h> now. 2024-08-09 15:55:38 +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 Add a new policy for for foreground of multi-window 2024-08-15 01:33:11 +00:00
libsparse Make simg2img host-only 2023-08-28 09:53:30 -07:00
libstats Make libexpresslog apex available 2024-06-13 22:59:55 +00:00
libsuspend libsuspend: vendor_available. 2021-11-02 13:52:40 -07:00
libsync Declare the headers of the ndk_library 2022-09-08 21:59:20 +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 Remove Windows-specific code from Trace.h 2024-07-31 15:52:09 +00:00
libvendorsupport libvendorsupport provides an API to replace vndk version 2024-04-30 10:59:07 +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 Make apex availability of libpropertyinfoparser and libpropertyinfoparser explicit 2024-01-04 01:34:40 +00:00
reboot [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
rootdir init.rc: Fix entropy pool initialization 2024-08-23 11:17:41 -07: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 Update shell_and_utilities for V. 2024-04-29 16:39:01 +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: libtrusty-rs: Add vsock support 2024-08-07 11:27:27 +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
.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
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