summaryrefslogtreecommitdiff
path: root/debuggerd
AgeCommit message (Collapse)Author
2021-07-12Merge SP1A.210709.002Haamed Gheibi
Change-Id: I63897770711a81d331de3f325affa88c3a56784f
2021-06-29[MTE] Add a HWASan-style tag dump to tombstones.Mitch Phillips
We already dump the tags in the regigster dump section by appending the tag to the memory address. You only get 2 granules before each register and 13 after. The HWASan-style tag dump is extremely useful for debugging, as it gives a pretty comprehensive overview of the memory subsystem. It also provides enough context bytes (256) to give you a reasonable intuition about a particular bug. The tag dump shows up only if PTRACE_PEEKTAGS returns at least one value in the 256 requested. If the start of end of the region is untagged, it's omitted. The tag dump looks like this: Change-Id: Icc33fb97542d9b1fa3ae9e58aba34d524c6ba7b5 --- Memory tags around the fault address (0x60000704414d340), one tag per 16 bytes: 0x704414d000: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x704414d100: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x704414d200: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 =>0x704414d300: 0 0 0 0 [2] 2 0 0 0 0 0 0 0 0 0 0 0x704414d400: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x704414d500: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x704414d600: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x704414d700: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x704414d800: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x704414d900: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x704414da00: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --- Bug: 183992164 Test: atest debuggerd_test on MTE+QEMU and sunfish. Change-Id: I8d5842e4803ca30b407e866c99eef56f2cb36600 Merged-In: I8d5842e4803ca30b407e866c99eef56f2cb36600
2021-06-24Avoid using thread cache in unwinder.yidong zhang
Using thread cache will cause SIGSEGV for 32bit+kernel4.9 device. Bug: 190579082 Bug: 189803009 Test: run cts -m CtsSeccompHostTestCases Change-Id: I47b13d02674aadbacd8dac36d8382eed0885413c Merged-In: I47b13d02674aadbacd8dac36d8382eed0885413c Signed-off-by: yidong zhang <yidong.zhang@amlogic.com> (cherry picked from commit cbf7c466e65eba2b285b28292a5e4934b6655c8a)
2021-06-18Merge SP1A.210616.001Daniel Norman
Change-Id: Ifacd718e7a3cbde1afa75d11a1b14e64286c2847
2021-06-10Avoid thread cache in unwinder.Christopher Ferris
The code in the fallback path calls pthread_key_create when using the normal thread cache. However, this code is executed out of the linker, which means that the call doesn't see keys created by the libc version of pthread_key_create. As of now, simply avoid using the thread cache to avoid this problem. Bug: 189803009 Test: debuggerd -b on a media process on a 32 bit Android Go device Test: and observe no crash. Test: debuggerd unit tests pass. Change-Id: I9ca1a55e44d3bb69d49450826d7d64d7a64145c3
2021-06-04Merge SP1A.210604.001Scott Lobdell
Change-Id: I5c88fe967b18abffb9e7d9147f3576ea4558ad67
2021-06-03[MTE] Print cause and alloc/dealloc traces to logcat.Mitch Phillips
This information clearly meets the bar for being dumped to logcat. If we omit the info, we may confuse the user into thinking that it's not available at all, especially if it's their first time seeing an MTE report. This also adds some functionality to the integration testing library to pull logcat messages and scan them to make sure the contents are in both places. Fixes: 187881237 Test: atest debuggerd_test # on QEMU w/ MTE. Change-Id: Icc17ea45bda7628331cc4812eaad3bc5c949b7a7 Merged-In: Icc17ea45bda7628331cc4812eaad3bc5c949b7a7
2021-05-19tombstoned: fix file creation for ANRs.Josh Gao
Bug: http://b/188315622 Test: manual Change-Id: I2948b929beb3093b59c8d37b706c857e7422a3cc Merged-In: I2948b929beb3093b59c8d37b706c857e7422a3cc (cherry picked from commit 931274862fc55bc723ee72c0c989984c4ffb7776)
2021-05-14Merge "Run MTE tests on zero-sized allocations."Peter Collingbourne
2021-05-14Merge "Add missing //apex_available:platform to debuggerd"Treehugger Robot
2021-05-13Run MTE tests on zero-sized allocations.Peter Collingbourne
Bug: 187879470 Change-Id: I9547f3032af9d1a921f8597a53389d25af33b369
2021-05-13Merge "Update API of MapInfo from libunwindstack"David Srbecky
2021-05-13Merge "Test that out-of-bounds UAF is not detected with MTE."Peter Collingbourne
2021-05-13Update API of MapInfo from libunwindstackDavid Srbecky
Use accessors to for all the fields. Test: build Change-Id: I68d149d914d4a4b088aaf822fe222a5d9e56ae80
2021-05-12Test that out-of-bounds UAF is not detected with MTE.Peter Collingbourne
This type of error is unlikely and attempting to detect it with MTE is likely to produce false positive reports. Make sure that this type of error is not detected by the allocator. Change-Id: I90676d1a031411d6b725890311317802bc24b459
2021-05-12Add missing //apex_available:platform to debuggerdPaul Duffin
This does not currently cause any problems but it does block progress on the referenced bugs. Bug: 187910671 Bug: 187914588 Test: m droid Change-Id: I977cd842101187441ddbc873eac25598295aab06
2021-05-11Merge SP1A.210510.001Brian Orr
Change-Id: If1e45c0407ebeee685e65e47b54a353ef88b401f
2021-05-03Re-add backtrace note about unreadable elf.Christopher Ferris
When moving to the proto-ized tombstones, the note about unreadable elf files in a backtrace got lost. This re-adds it and adds a test to verify that the note properly shows up. Bug: 185428454 Test: Ran unit tests. Change-Id: I1150cc737772e1b79fd73ec5c782caadc4629421
2021-04-26Merge SP1A.210425.001Scott Lobdell
Change-Id: I9729cc3087e7f15940babbf3afdf118941eb8b8a
2021-04-16Allow another prctl call.Christopher Ferris
A change was made so that pthread_create is calling prctl(PR_PAC_RESET_KEYS, ...) on aarch64. It's possible that other seccomp policies might need to change to allow this. Test: CrasherTest.seccomp_backtrace passes on aarch64. Change-Id: I9c4d1b3dca5f19a6285bf904bb942f1f52e42bd0
2021-04-08Merge SP1A.210407.002Scott Lobdell
Change-Id: I5fc9b14634cd9f2991dc43b2dedb514603d138a1
2021-03-31Merge "debuggerd: store commandline instead of process name."Josh Gao
2021-03-30debuggerd: store commandline instead of process name.Josh Gao
Bug: http://b/180605583 Test: debuggerd_test Change-Id: I018d399a5460f357766dc1b429f645f78fe88565
2021-03-29Merge SP1A.210329.001Scott Lobdell
Change-Id: I5658dcb0f7ed2ca7deb5eeb333981daaf76592ca
2021-03-23Adjust libunwindstack MapInfo APIDavid Srbecky
Test: m debuggerd_test Change-Id: I63a2379bad3ace4755ae48bf0a83eaa0070f9077
2021-03-23Merge "libdebuggerd: store process uptime."Josh Gao
2021-03-19Merge "Support MTE and GWP-ASan features in proto tombstones."Peter Collingbourne
2021-03-19Merge "[GWP-ASan] Add debuggerd end-to-end tests and remove unique wording."Peter Collingbourne
2021-03-18Merge "debuggerd: prepare to abandon ship^Wgdb."Treehugger Robot
2021-03-17Merge "Add support for a hw_timeout_multiplier system property."Peter Collingbourne
2021-03-17debuggerd: prepare to abandon ship^Wgdb.Elliott Hughes
Talk of "gdb" when we currently mean "gdb or lldb" and will soon mean "lldb" is starting to confuse people. Let's use the more neutral "debugger" in places where it really doesn't matter. The switch from gdbclient.py to lldbclient.py is a change for another day... Test: treehugger Change-Id: If39ca7e1cdf4c8bb9475f1791cdaf201fbea50e0
2021-03-17Merge "Ignore deliberate free() of non-heap memory"Pirama Arumuga Nainar
2021-03-16Ignore deliberate free() of non-heap memoryPirama Arumuga Nainar
Bug: http://b/181927912 Clang already has -Wfree-nonheap-object but it became a default warning with clang-r416183 Test: compile crasher.cpp Change-Id: Ice532e9f373a628e07acd08a4fc7bfa7cf5d4e08
2021-03-16debuggerd: remove unused file.Elliott Hughes
Test: treehugger Change-Id: I17f5f88e91be3dccbf01b93ca93b0879a997bb4d
2021-03-16Support MTE and GWP-ASan features in proto tombstones.Peter Collingbourne
Proto tombstones were missing tagged fault addresses, tagged_addr_ctrl, tags in memory dumps and Scudo and GWP-ASan error reports. Since text tombstones now go via protos, all of these features broke when we switched to text tombstones generated from protos by default. Fix the features by adding support for them to the proto format, tombstone_proto and tombstone_proto_to_text. Bug: 135772972 Bug: 182489365 Change-Id: I3ca854546c38755b1f6410a1f6198a44d25ed1c5
2021-03-11[GWP-ASan] Add debuggerd end-to-end tests and remove unique wording.Mitch Phillips
Looks like we unintentionally had a breakage after aosp/1595302, where both GWP-ASan and MTE tests started failing because the extra information wasn't plumbed through the tombstones. MTE has end-to-end tests but aren't run continuously, and GWP-ASan was missing the e2e tests. Also remove some unique wording for GWP-ASan, a UaF on the free'd pointer is now "0 bytes into a 16-byte allocation" instead of "on a 16-byte allocation". The former is more descriptive and is more ubiquitously used in our tooling. This patch adds the E2E tests, but the underlying problem needs to be fixed as well, before this patch can land. Bug: 182489365 Test: atest debuggerd_test Change-Id: I0fe8aba7ea443b3071724987f46b19a6525cda3c
2021-03-11Add support for a hw_timeout_multiplier system property.Peter Collingbourne
In order to test the platform in emulators that are orders of magnitude slower than real hardware we need to be able to avoid hitting timeouts that prevent it from coming up properly. For this purpose introduce a system property, ro.hw_timeout_multiplier, which may be set to an integer value that acts as a multiplier for various timeouts on the system. Bug: 178231152 Change-Id: I6d7710beed0c4c5b1720e74e7abe3a586778c678 Merged-In: I6d7710beed0c4c5b1720e74e7abe3a586778c678
2021-03-11Merge SP1A.210311.001Scott Lobdell
Change-Id: I01c4c598ed6764fc1936b2baaab660e585a3984c
2021-03-11Merge "Teach debuggerd to pass the secondary ring buffer to ↵Peter Collingbourne
__scudo_get_error_info()."
2021-03-09Merge "Add support for a hw_timeout_multiplier system property." into sc-devPeter Collingbourne
2021-03-06Merge "Untag addresses in registers before looking up the mapping."Treehugger Robot
2021-03-01libdebuggerd: store process uptime.Josh Gao
Application developers would like to know how long their process has been alive for to distinguish between crashes that happen immediately upon startup and crashes in regular operation. Test: manual Change-Id: Ia31eeadfcced358b478c7a7c7bb2e8a0252e30f4
2021-03-01libdebuggerd: delete unused code.Josh Gao
Test: none Change-Id: I87b62f306d287e9356c639f6d0c49566c71f7f29
2021-02-23Merge SP1A.210222.001Scott Lobdell
Change-Id: Ibfdfdca4292e9a1076e6a9c9a3325761d281ae80
2021-02-19Add support for a hw_timeout_multiplier system property.Peter Collingbourne
In order to test the platform in emulators that are orders of magnitude slower than real hardware we need to be able to avoid hitting timeouts that prevent it from coming up properly. For this purpose introduce a system property, ro.hw_timeout_multiplier, which may be set to an integer value that acts as a multiplier for various timeouts on the system. Bug: 178231152 Change-Id: I6d7710beed0c4c5b1720e74e7abe3a586778c678 Ignore-AOSP-First: The frameworks/base part of this change conflicts with AOSP so we need to land it internally first
2021-02-19[LSC] Add LOCAL_LICENSE_KINDS to system/coreBob Badour
Added SPDX-license-identifier-Apache-2.0 to: bootstat/Android.bp cli-test/Android.bp code_coverage/Android.bp cpio/Android.bp debuggerd/crasher/Android.bp debuggerd/proto/Android.bp diagnose_usb/Android.bp fs_mgr/libdm/Android.bp fs_mgr/libfiemap/Android.bp fs_mgr/liblp/Android.bp fs_mgr/libsnapshot/Android.bp fs_mgr/libstorage_literals/Android.bp fs_mgr/libvbmeta/Android.bp fs_mgr/tests/Android.bp fs_mgr/tools/Android.bp gatekeeperd/Android.bp healthd/Android.bp healthd/testdata/Android.bp init/Android.bp init/Android.mk init/sysprop/Android.bp init/test_kill_services/Android.bp init/test_service/Android.bp libappfuse/Android.bp libasyncio/Android.bp libbinderwrapper/Android.bp libcrypto_utils/Android.bp libcrypto_utils/tests/Android.bp libdiskconfig/Android.bp libgrallocusage/Android.bp libkeyutils/mini_keyctl/Android.bp libmodprobe/Android.bp libnetutils/Android.bp libpackagelistparser/Android.bp libprocessgroup/Android.bp libprocessgroup/cgrouprc/Android.bp libprocessgroup/cgrouprc_format/Android.bp libprocessgroup/profiles/Android.bp libprocessgroup/setup/Android.bp libqtaguid/Android.bp libsparse/Android.bp libstats/push_compat/Android.bp libsuspend/Android.bp libsync/Android.bp libsystem/Android.bp libsysutils/Android.bp libusbhost/Android.bp libutils/Android.bp libvndksupport/Android.bp libvndksupport/tests/Android.bp llkd/Android.bp llkd/tests/Android.bp property_service/libpropertyinfoparser/Android.bp property_service/libpropertyinfoserializer/Android.bp property_service/property_info_checker/Android.bp qemu_pipe/Android.bp reboot/Android.bp rootdir/Android.bp rootdir/Android.mk rootdir/avb/Android.bp rootdir/avb/Android.mk run-as/Android.bp sdcard/Android.bp set-verity-state/Android.bp shell_and_utilities/Android.bp storaged/Android.bp toolbox/Android.bp trusty/apploader/Android.bp trusty/confirmationui/Android.bp trusty/confirmationui/fuzz/Android.bp trusty/coverage/Android.bp trusty/fuzz/Android.bp trusty/fuzz/test/Android.bp trusty/gatekeeper/Android.bp trusty/gatekeeper/fuzz/Android.bp trusty/keymaster/Android.bp trusty/keymaster/fuzz/Android.bp trusty/libtrusty/Android.bp trusty/libtrusty/tipc-test/Android.bp trusty/secure_dpu/Android.bp trusty/storage/interface/Android.bp trusty/storage/lib/Android.bp trusty/storage/proxy/Android.bp trusty/storage/tests/Android.bp trusty/utils/spiproxyd/Android.bp trusty/utils/trusty-ut-ctrl/Android.bp usbd/Android.bp watchdogd/Android.bp Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to: debuggerd/Android.bp fastboot/Android.bp libkeyutils/Android.bp Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD SPDX-license-identifier-MIT to: libcutils/Android.bp Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT to: fs_mgr/Android.bp fs_mgr/libfs_avb/Android.bp trusty/Android.bp trusty/utils/rpmb_dev/Android.bp Added SPDX-license-identifier-BSD to: fastboot/fuzzy_fastboot/Android.bp Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Change-Id: Id740a7d2884556081fdb68876584b25eb95e1bef
2021-02-19Merge "Update for new kernel 5.11 headers."Christopher Ferris
2021-02-19Merge "Don't hard-code number of tombstones."Christopher Ferris
2021-02-18Generate text tombstones from proto tombstones by default.Josh Gao
We're running into timeouts from death tests because we're ~doubling the cost of crash dumping by doing it twice. Bug: http://b/180605583 Test: treehugger Change-Id: If5b40434171323a09960b70af0124ec08bd3fbe8
2021-02-18Don't hard-code number of tombstones.Christopher Ferris
On cuttlefish, the number of tombstones allowed is much larger than 50, so change the algorithm to search for any tombstone file. Test: Ran unit tests on cuttlefish with > 50 tombstones. Test: Ran unit tests on device. Change-Id: Ia1d885fe19a7f7751fe3386d40b48750d1e21bd5