summaryrefslogtreecommitdiffstats
path: root/debuggerd
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'android-10.0.0_r37' into ↵Kevin F. Haggerty2020-06-011-13/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | staging/lineage-17.1_merge-android-10.0.0_r37 Android 10.0.0 Release 37 (QQ3A.200605.001) * tag 'android-10.0.0_r37': Add cpu-set properties to serializer test Allowing R and S developer GSI for DSU Adding new GSI public keys Increase timeouts. Add TEMP_FAILURE_RETRY where appropriate. Increase timeout to avoid flaky tests. configs for jailed procs to dump code coverage data Move gcov output to /data/misc/trace rootdir: init.rc to limit discard size to 128MB Change-Id: I402131a51320e548dfd105d2223423e14a9e8ec4
| * Increase timeouts.Christopher Ferris2020-02-141-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is still some flakiness, so increase the timeout values. Also remove the TEMP_FAILURE_RETRY macro usage in TIMEOUT calls. That macro disables the ability of the alarm code to interrupt the system call. Bug: 141045754 Bug: 149562320 Test: Unit tests pass. Change-Id: Ia3c95dccc3076a3fd5ef6432097a57e4ccee4df3 Merged-In: Ia3c95dccc3076a3fd5ef6432097a57e4ccee4df3 (cherry picked from commit 11555f0961fd923feba9cd0e125eef4544bc72e8)
| * Add TEMP_FAILURE_RETRY where appropriate.Christopher Ferris2020-02-141-11/+12
| | | | | | | | | | | | | | | | | | | | Bug: 141045754 Bug: 149562320 Test: Ran unit tests in a loop on walleye and cuttlefish. Change-Id: I87b912e76889ed207ab17b862e4786ee44a382ba Merged-In: I87b912e76889ed207ab17b862e4786ee44a382ba (cherry picked from commit 172b0a083434980a56ac4d719f1c9496ec163740)
| * Increase timeout to avoid flaky tests.Christopher Ferris2020-02-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | Also, print extra information when an error occurs. Bug: 149562320 Test: Ran unit tests. Change-Id: I3404549db0ac18a4a82a99b2620556db96376bca Merged-In: I3404549db0ac18a4a82a99b2620556db96376bca (cherry picked from commit afc0ff7fe06aee9822fac97e52d1fba09c695d8b)
* | debuggerd: add Lineage version to tombstonesScott Mertz2019-12-231-0/+2
|/ | | | | | | | | | | Change-Id: I7822a2e133a2f326ad2d8da8f79b0064344d59bf debuggerd: Rebrand tombstone header to LineageOS [harryyoud]: Use new props for 15.1 [rashed]: Bah... use GetProperty Change-Id: Idd08c2eb7e395b464b1510742bf52833f465db08
* crash_dump: populate uid field.Josh Gao2019-05-091-0/+1
| | | | | | | Bug: http://b/132359035 Test: manual Change-Id: I99d8446024fc2d9395132dea45f03317976a9b62 (cherry picked from commit 5df504c5f8f6871f7ec79d735490176ba5179d2a)
* Merge "Add UID printing to tombstone headers" into qt-devMisha Wagner2019-05-013-0/+16
|\
| * Add UID printing to tombstone headersMisha Wagner2019-04-293-0/+16
| | | | | | | | | | | | | | | | | | | | | | This is for Android Telemetry to be able to categorise the processes that produce tombstones. Bug: 129933535 Test: atest debugerd_test:TombstoneTest Change-Id: Ie635347c9839eb58bfd27739050bd68cbdbf98da Merged-In: Ie635347c9839eb58bfd27739050bd68cbdbf98da (cherry picked from commit e5b7913d2c5da92c37233fef15ab3109e37d9c90)
* | Add indicator that an elf is memory backed.Christopher Ferris2019-04-195-12/+31
|/ | | | | | | | | | | | | | | | | | Modify the unwinder library to indicate that at least one of the stack frames contains an elf file that is unreadable. Modify debuggerd to display a note about the unreadable frame and a possible way to fix it. Bug: 129769339 Test: New unit tests pass. Test: Ran an app that crashes and has an unreadable file and verified the Test: message is displayed. Then setenforce 0 and verify the message is Test: not displayed. Change-Id: Ibc4fe1d117e9b5840290454e90914ddc698d3cc2 Merged-In: Ibc4fe1d117e9b5840290454e90914ddc698d3cc2 (cherry picked from commit 4ae266ccbddbd0a6529248ecd1b324feab261c0d)
* debuggerd: call setsid in our children.Josh Gao2019-04-172-2/+15
| | | | | | | | | | | | | There appears to be a kernel bug that causes SIGHUP and SIGCONT to be sent to the parent process group we spawn from if the process group contains stopped jobs (e.g. the parent itself, because of wait_for_gdb). Call setsid in all of our children to prevent this from happening. Bug: http://b/31124563 Test: adb shell 'setprop debug.debuggerd.wait_for_gdb 1; killall -ABRT surfaceflinger' Change-Id: I1a48d70886880a5bfbe2deb80d48deece55faf09 (cherry picked from commit 18cb6812474e00050efab19e242c8a04ed470bec)
* Revert "Check for data races when reading JIT/DEX entries."David Srbecky2019-04-123-5/+8
| | | | | | | | | | | | This reverts commit 85b5fecec920208ec43b42488f08d4c2e5aaeda2. Reason for revert: Breaks ART tests, reverting to investigate. Exempt-From-Owner-Approval: Revert. (cherry picked from commit b9cc4fbb268652744c812415cb2e5d1fbe04879a) Bug: 130406806 Change-Id: I634e37060b97484d627fc544e3b406fd90aaa784
* Remove include of backtrace/Backtrace.h.Christopher Ferris2019-04-094-2/+11
| | | | | | | | | | | | | | Somehow the code was still including this include from libbacktrace. I think the libbacktrace include directory was coming from some transitive includes. I verified that nothing in debuggerd is using the libbacktace.so shared library. Bug: 120606663 Test: Builds, unit tests pass. Change-Id: I85c2837c5a539ccefc5a7140949988058d21697a Merged-In: I85c2837c5a539ccefc5a7140949988058d21697a (cherry picked from commit 3336c7bce087d33cc9ab0b02139b39551539f8a6)
* Check for data races when reading JIT/DEX entries.David Srbecky2019-03-293-8/+5
| | | | | | | | | | | Update the entries only when the list is modified by the runtime. Check that the list wasn't concurrently modified when being read. Bug: 124287208 Test: libunwindstack_test Test: art/test.py -b --host -r -t 137-cfi Change-Id: I87ba70322053a01b3d5be1fdf6310e1dc21bb084
* Add BuildId to frame information.Christopher Ferris2019-03-262-0/+2
| | | | | | | | | | | Update debuggerd to print BuildId information by default. Bug: 120975492 Test: New unit tests pass. Test: debuggerd -b <PID> shows build id information. Test: tombstones include build id information. Change-Id: I019b031113d0b77385516223c63455b868924440
* debuggerd_handler: demote abort on exec failure to log.Josh Gao2019-03-181-1/+3
| | | | | | | | | | If a process is ptraced already, we might not be able to exec crash_dump due to selinux. Since we can be called for non-fatal events, we shouldn't abort in that case. Bug: http://b/128054996 Test: treehugger Change-Id: I1442041caa7af908df2ab87b9e010c44082e7587
* Fix copy / move behaviour of Maps object.Florian Mayer2019-03-051-1/+1
| | | | | | | | | | | | | | | | | Currently, moving or copying a Maps object leads to double free of MapInfo. Even moving a Maps object did not prevent this, as after a move the object only has to be in an "unspecified but valid state", which can be the original state for a vector of raw pointers (but not for a vector of unique_ptrs). Changing to unique_ptrs is the most failsafe way to make sure we never accidentally destruct MapInfo. Test: atest libuwindstack_test Failed LocalUnwinderTest#unwind_after_dlopen which also fails at master. Change-Id: Id1c9739b334da5c1ba532fd55366e115940a66d3
* Fix libdexfile dependencies to avoid direct dependency on libdexfile_external.Martin Stjernholm2019-02-241-3/+1
| | | | | | | | | | | | | | It should be dlopen'ed lazily by libdexfile_support now. Also change debuggerd_test to not link libunwindstack and its dependencies statically - the static libs can overlap with the dynamic ones. Test: mmma system/core/debuggerd/ Test: atest debuggerd_test Test: mmma system/core/{libunwindstack,libbacktrace}, run host gtests (cannot get atest to work) Bug: 124827589 Bug: 123186083 Change-Id: I9e7bf9bcbae499af4e1be4c9854bce441e2a7b55
* Merge changes from topic "base_cmsg"Josh Gao2019-02-197-96/+26
|\ | | | | | | | | | | | | * changes: adb: switch to base::{Send,Receive}FileDescriptors. debuggerd: switch to base::{Send,Receive}FileDescriptors. base: add helpers for sending/receiving file descriptors.
| * debuggerd: switch to base::{Send,Receive}FileDescriptors.Josh Gao2019-02-137-96/+26
| | | | | | | | | | | | Bug: http://b/12204763 Test: debuggerd_test Change-Id: I0be40916214de51ab36fd6bd6d44090a84312e51
* | Use new static target for libdexfile_support.Martin Stjernholm2019-02-121-11/+4
|/ | | | | | | | | | | This is necessary since the dynamic one is now using dlopen(), which isn't available in static builds. Test: m Test: mmma system/core/{libunwindstack,libbacktrace}, run host gtests (cannot get atest to work) Bug: 123403798 Bug: 123186083 Change-Id: I06a9cdfe7e7cc01427ffd54b66c8ebab88782260
* Replace libbacktrace with libunwindstack directly.Christopher Ferris2019-01-2912-541/+729
| | | | | | | | | | Small modifications to the dump_stack method and added unit tests to verify the output. Bug: 120606663 Test: Unit tests pass, debuggerd run on processes on target. Change-Id: Id385a915b751abda3dd6baebed6c3ce498c3bf6e
* debuggerd: Fix return type in error caseGreg Kaiser2019-01-081-1/+1
| | | | | | | | With our method returning 'bool', a "return -1" is interpretted as 'true'. We change this to an explicit 'false', as desired. Test: TreeHugger Change-Id: I222858b797bc4242a2dc6d4fe81df3d2586d055a
* debuggerd_client: resolve tid to tgid when dumping Java stacks.Josh Gao2019-01-042-2/+16
| | | | | | | Bug: http://b/121438213 Test: debuggerd_test32 Test: debuggerd_test64 Change-Id: I4d114c8b0c4586ba64de5b45b47b0ec5c10354f8
* Revert^2 "Use libdexfile external API in libunwindstack."Martin Stjernholm2018-12-191-2/+21
| | | | | | | | | | | | | | | | This reverts commit cacf5bf6bca7e9806739a27589d8b6101c567c32. Reason for revert: Re-apply with proper fix for VNDK visibility on marlin and sailfish. Test: Manual repro of http://b/121110092#comment1 on reported branch Test: atest CtsRenderscriptTestCases Test: mmma system/core/{libunwindstack,libbacktrace}, run host gtests Test: Make image, flash, and reboot device. Test: Forrest cts/art/gce-all: https://android-build.googleplex.com/builds/forrest/run/L00300000240828791 Test: Forrest cts/bionic/gce-all: https://android-build.googleplex.com/builds/forrest/run/L05600000240682947 (shows 27/2958 failed, but it doesn't pass on Blackbox either: http://screen/xbjioEf6UgR) Test: Forrest cts/renderscript/gce-all: https://android-build.googleplex.com/builds/forrest/run/L66200000240680523 Bug: 119632407 Change-Id: I601aa97eac8127e30d753405f8bc1fc4ae7f849f
* Revert "Use libdexfile external API in libunwindstack."Martin Stjernholm2018-12-191-21/+2
| | | | | | | | | | | | | | | This reverts commit 444e23d2fc6d7c6f799ff9e2f69c1a82d2960c5b. The rest of the topic doesn't need to be reverted. Reason for revert: Breaks renderscript on marlin and sailfish. Test: Manual repro of http://b/121110092#comment1 on reported branch Test: "atest CtsRenderscriptTestCases" on that branch Test: mmma system/core/{libunwindstack,libbacktrace}, run host gtests Test: Make image, flash, and reboot device. Bug: 121110092, 119632407 Change-Id: If1976b19ce386c95bc5bd4fd6d523745c167de18
* Merge "libdebuggerd: add timestamp to tombstones."Josh Gao2018-12-152-0/+18
|\
| * libdebuggerd: add timestamp to tombstones.Josh Gao2018-12-142-0/+18
| | | | | | | | | | | | Bug: http://b/120099273 Test: debuggerd_test Change-Id: I457506f8d9920d969e1eba0265f85693b484f1a9
* | Use libdexfile external API in libunwindstack.Martin Stjernholm2018-12-131-2/+21
|/ | | | | | | Test: mmma system/core/{libunwindstack,libbacktrace}, run host gtests Test: Make image, flash, and reboot device. Bug: 119632407 Change-Id: I370f089a1b20ba432e136818b4325d46f99df708
* C++17 is the default now.Elliott Hughes2018-12-031-1/+0
| | | | | Test: builds Change-Id: I6814455e9ad2cdcf99ad66de38a3ad0bfb440d80
* Merge "tombstoned: fixed tombstones failed issue"Elliott Hughes2018-11-291-0/+8
|\
| * tombstoned: fixed tombstones failed issueJinguang Dong2018-11-281-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a problem about tombstone, which it will fail to generate tombstone file in some scenarios due to socket communication exception. Reproduce step: step 1: reboot device step 2: ps -ef |grep zygote , get the pid of zygote64 (Attention: zygote64 should never been killed or reboot, otherwise we can get the tombstone file) step 3: kill -5 pid of zygote64 step 4: cd data/tombstones/, and could not find the tombstone file of zygote64. [Cause Analysis] 1. There are following logs by logcat: 11-19 15:38:43.789 569 569 F libc : Fatal signal 5 (SIGTRAP), code 0 (SI_USER) in tid 569 (main), pid 569 (main) 11-19 15:38:43.829 6115 6115 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone 11-19 15:38:43.830 569 5836 I Zygote : Process 6114 exited cleanly (0) 11-19 15:38:43.830 777 777 I /system/bin/tombstoned: received crash request for pid 569 11-19 15:38:43.831 6115 6115 I crash_dump64: performing dump of process 569 (target tid = 569) ... 11-19 15:38:43.937 777 777 W /system/bin/tombstoned: crash socket received short read of length 0 (expected 12) 2. The last log was print by function of crash_request_cb in file of tombstoned.cpp, following related code: rc = TEMP_FAILURE_RETRY(read(sockfd, &request, sizeof(request))); if (rc == -1) { PLOG(WARNING) << "failed to read from crash socket"; goto fail; } else if (rc != sizeof(request)) { LOG(WARNING) << "crash socket received short read of length " << rc << " (expected " << sizeof(request) << ")"; goto fail; } Tombstoned read message by socket, and now the message length is zero. Some socket communication exception occurs at that time. We try to let crash_dump resend the socket message when the communication is abnormal. Just as this CL. Test: 1 reboot device 2 ps -ef |grep zygote , get the pid of zygote64 (Attention: zygote64 should never been killed or reboot, otherwise we can get the tombstone file) 3 kill -5 pid of zygote64 4 cd data/tombstones/, and could find the tombstone file of zygote64. Change-Id: Ic152b081024d6c12f757927079fd221b63445b18
* | Tombstone support for XOM-related SIGSEGVs.Ivan Lozano2018-11-271-3/+10
|/ | | | | | | | | | Make XOM related crashes a little less mysterious by adding an abort cause explaining the crash. Bug: 77958880 Test: Abort cause in tombstone for a XOM-related crash. Change-Id: I7af1bc251d9823bc755ad98d8b3b87c12bbaecba
* switch to using android-base/file.h instead of android-base/test_utils.hMark Salyzyn2018-11-141-2/+1
| | | | | | Test: compile Bug: 119313545 Change-Id: I4f7ad84743e974b4b4d1d7256088f6c8b749a237
* Merge "debuggerd_fallback: fix fd leak."Treehugger Robot2018-10-311-2/+3
|\
| * debuggerd_fallback: fix fd leak.Josh Gao2018-10-301-2/+3
| | | | | | | | | | | | | | | | | | | | Previously, when we received simultaneous dump requests, we were CASing a file descriptor value into a variable, and then failing to close it if the CAS failed. Bug: http://b/118412443 Test: debuggerd_test Change-Id: I075c35a239426002eb9416da3d268c3d1a18e9d2
* | Update for v4.19 kernel headers.Christopher Ferris2018-10-301-1/+3
|/ | | | | | | | Add new trap type TRAP_UNK. Test: Unit tests pass. Change-Id: I2b9cb8ddd1d993aa4819831aaca34f8da4286b52 (cherry picked from commit ead88bc88e567182b3c6ae5fd2f17730f55ec3f3)
* Fix two clang-tidy issues in crasher.cpp.Stephen Hines2018-09-241-1/+5
| | | | | | | | | | | | | | | TEMP_FAILURE_RETRY's result was unused for the call to read(), so now mark it as such to silence a possible unused result warning. For __read_chk(), this function is an internal implementation detail of FORTIFY in Bionic. Under clang-tidy, FORTIFY checks are actually removed, so this now results in an unknown function being called. The code should not be explicitly depending on an implementation detail, but we can just suppress the failing case to retain test coverage of the actual implementation. Bug: http://b/110779387 Test: Build using WITH_TIDY=1 Change-Id: If83ac1d6f3b6dc32c0d0fb56d8e675e53b586f78
* Merge "crash_dump: annotate intended fallthrough."Treehugger Robot2018-09-191-0/+2
|\
| * crash_dump: annotate intended fallthrough.Josh Gao2018-09-181-0/+2
| | | | | | | | | | | | Bug: http://b/116020901 Test: treehugger Change-Id: I5d059d051fb257efe7f7e1790fd0bc2abd364167
* | tombstoned: don't generate tombstones for native backtraces.Josh Gao2018-09-142-2/+47
| | | | | | | | | | | | | | | | | | | | Previously, if an intercept ends before we ask for a file descriptor when doing a backtrace, we'll create a tombstone file instead. Bug: http://b/114139908 Bug: http://b/115349586 Test: debuggerd_test32 Change-Id: I23c7bb8ae5a982a4374a862d0a4f17bee03eb1d9
* | Fix multithreaded backtraces for seccomp processes.Josh Gao2018-09-124-11/+75
|/ | | | | | | | | | | Add threads to the existing seccomp backtrace test to prevent regressing this. Bug: http://b/114139908 Bug: http://b/115349586 Test: debuggerd_test32 Test: debuggerd_test64 Change-Id: I07fbe1619b60f0008deb045a249f9045404478c2
* debuggerd_client: improve error logging.Josh Gao2018-09-061-8/+16
| | | | | | | | | | | | system_server is sometimes failing to dump with the following error: libdebuggerd_client: received packet of unexpected length from tombstoned: expected 128, received -1 Improve the logging to try to figure out what's going on. Bug: http://b/114139908 Test: treehugger Change-Id: Iee1bdc0891b9fc7bd80a330495ec22a530febddb
* libdebuggerd: decode fdsan owner tags.Josh Gao2018-08-281-2/+5
| | | | | Test: debuggerd `pidof system_server` | grep " fd " Change-Id: Ic4bb30b8602acf5912e776a61825d9645ec93c65
* debuggerd_test: add test for fdsan abort message.Josh Gao2018-08-271-0/+26
| | | | | | | Bug: http://b/112770187 Test: debuggerd_test Test: bionic-unit-tests Change-Id: Ia93761e89074aea4629b8d0f232c580d6f0f249c
* debuggerd_handler: receive abort messages via sigqueue(DEBUGGER_SIGNAL).Josh Gao2018-08-271-9/+19
| | | | | | | | | Make it possible for code such as fdsan that generates debugging tombstones via raise(DEBUGGER_SIGNAL) to pass an abort message as well. Bug: http://b/112770187 Test: debuggerd_test Change-Id: Idc34263241c18033573e466da3a45aa6f716ddb3
* debuggerd: delete accidentally merged log spam.Josh Gao2018-08-211-1/+0
| | | | | Test: none Change-Id: I4237b4f0c8d5cdc559766fc3c73742b013c1df86
* libdebuggerd: extract and print the fdsan table.Josh Gao2018-08-065-21/+108
| | | | | | | | | This commit only prints the raw value of the owner tag, pretty-printing will come in a follow-up commit. Test: debuggerd `pidof adbd` Test: static_crasher fdsan_file + manual inspection of tombstone Change-Id: Idb7375a12e410d5b51e6fcb6885d4beb20bccd0e
* crash_dump: pass the address of the fdsan table.Josh Gao2018-08-064-25/+69
| | | | | | | | | Pass the address of the fdsan table down to crash_dump so that we can dump the fdsan table along with the open file descriptor list. Test: debuggerd_test Test: manually ran an old static_crasher Change-Id: Icbac5487109f2db1e1061c4d46de11b016b299e3
* crasher: add close(fileno(FILE*)) and close(dirfd(DIR*)).Josh Gao2018-07-181-32/+40
| | | | | | | Add some cases to trigger fdsan aborts. Test: crasher fdsan_file; crasher fdsan_dir Change-Id: I48152d333dc25900f1c8d8e0f2e8728154643508
* debuggerd_handler: use syscall(__NR_close) instead of close.Josh Gao2018-07-181-2/+12
| | | | | | | | Avoid bionic's file descriptor ownership checks by calling the close syscall manually. Test: debuggerd_test Change-Id: I10af6aca0e66fe030fd7a53506ae61c87695641d