History log of /system/core/debuggerd/debuggerd_test.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
26cbafb89277415109706bdd0b0813a439c2d0dc 23-Jun-2017 Andreas Gampe <agampe@google.com> Debuggerd: Fix debuggerd_test

Follow-up to commit 695713e931f0436aca56be9c0dacf2a5dd4e56e7 in
bionic. Change expectations of the abort callstack.

Test: mmma system/core/debuggerd
Test: adb shell /data/nativetest/debuggerd_test/debuggerd_test32
Test: adb shell /data/nativetest64/debuggerd_test/debuggerd_test64
Change-Id: I350a29ee1713a7ebdd50f2b9bdc2078c671e22c7
/system/core/debuggerd/debuggerd_test.cpp
58778e138ee35c6179c8c62ac4157f80a4e63e3c 15-Jun-2017 Jaesung Chung <jaesung@google.com> debuggerd_test: find backtrace frame in all lines in CrasherTest

Kernel can use vsyscall for system calls. The vsyscall implementation in
the kernel gives one more depth in the backtrace. It leads to failures
on CrasherTest. This CL makes tests find a system call frame not only in
the first line but also in all lines on the backtrace.

Bug: 62600694
Test: passes all CrasherTests.
Change-Id: Ice383bb94db097e7e9a9e4f74d8fa5ecc528122a
/system/core/debuggerd/debuggerd_test.cpp
ca5e908dd696a729110f180ba5cba629ebf921f5 02-Jun-2017 Narayan Kamath <narayan@google.com> tombstoned: turn on java trace support + unit tests.

The SELinux changes that this depends on have now landed.

This change also adds a few lower level unit tests of intercept
functionality.

Test: make; debuggerd_test
Change-Id: I0be5e85e7097e26b71db269c9ed92d9b438bfb28
/system/core/debuggerd/debuggerd_test.cpp
5675f3c321b7c6a9bbb2a7aacf18a01126f2f2cb 01-Jun-2017 Josh Gao <jmgao@google.com> debuggerd_client: increase pipe buffer size to max.

If a process tries to dump itself (e.g. system_server during ANRs),
crash_dump will block trying to write to its pipe if it's not
sufficiently large. Increase the pipe size to the max, and add a test
to make sure that it's always at least 1MB (the default value).

Bug: http://b/38427757
Test: debuggerd_test
Change-Id: Iddb0cb1e5ce9e687efa9e94c2748a1edfe09f119
/system/core/debuggerd/debuggerd_test.cpp
a73df601b7fe192001f4b9b5ddeb17b8efe3981b 24-May-2017 Narayan Kamath <narayan@google.com> tombstoned: allow intercepts for java traces.

All intercept requests and crash dump requests must now specify a
dump_type, which can be one of kDebuggerdNativeBacktrace,
kDebuggerdTombstone or kDebuggerdJavaBacktrace. Each process can have
only one outstanding intercept registered at a time.

There's only one non-trivial change in this changeset; and that is
to crash_dump. We now pass the type of dump via a command line
argument instead of inferring it from the (resent) signal, this allows
us to connect to tombstoned before we wait for the signal as the
protocol requires.

Test: debuggerd_test

Change-Id: I189b215acfecd08ac52ab29117e3465da00e3a37
/system/core/debuggerd/debuggerd_test.cpp
2d377cd6888775fe682e49a1ac34a3a6feb78708 10-May-2017 Narayan Kamath <narayan@google.com> tombstoned: Add a shared library version of libtombstoned_client...

.. for ART and the frameworks to link against. In the new stack dumping
scheme (see related bug), the Java runtime will communicate with
tombstoned in order to obtain a FD to which it can write its traces.

Also move things around to separate headers that are private
implementation details from headers that constitute the public debuggerd
API. There are currently only three such headers :

- tombstoned/tombstoned.h
- debuggerd/client.h
- debuggerd/handler.h

Bug: 32064548
Test: make

Change-Id: If1b8578550e373d84828b180bbe585f1088d1aa3
/system/core/debuggerd/debuggerd_test.cpp
2e7b8e2d1aff139895127a93c020bddb98a0f26e 05-May-2017 Josh Gao <jmgao@google.com> debuggerd_handler: use syscall(__NR_get[pt]id) instead of get[pt]id.

bionic's cached values for getpid/gettid can be invalid if the crashing
process manually invoked clone to create a thread or process, which
will lead the crash_dump refusing to do anything, because it sees the
actual values.

Use the getpid/gettid syscalls directly to ensure correct values on
this end.

Bug: http://b/37769298
Test: debuggerd_test
Change-Id: I0b1e652beb1a66e564a48b88ed7fa971d61c6ff9
/system/core/debuggerd/debuggerd_test.cpp
e06f2a4886a237abbc203942c970e2fc528003da 28-Apr-2017 Josh Gao <jmgao@google.com> debuggerd_handler: don't assume that abort message implies fatal.

Applications can set abort messages via android_set_abort_message
without actually aborting. This leads to following non-fatal dumps
printing their output to logcat in the same format as a regular crash.

Bug: http://b/37754992
Test: debuggerd_test
Change-Id: I9c5e942984dfda36448860202b0ff1c2950bdd07
/system/core/debuggerd/debuggerd_test.cpp
8b951f5adc4c537874dc0af7161bf9edd84e2448 05-Apr-2017 Josh Gao <jmgao@google.com> Merge changes Ib8369088,I743433bc

* changes:
debuggerd_test: remove useless pipe.
debuggerd_client: fix infinite timeouts.
951cf7007147168164e8cd60ff093627f387aad7 04-Apr-2017 Josh Gao <jmgao@google.com> debuggerd_test: remove useless pipe.

Bug: http://b/36897117
Test: none
Change-Id: Ib8369088153fe44de2af9037299bdfce7b709b98
/system/core/debuggerd/debuggerd_test.cpp
a5199a9e43f865a08df12b3c89371ee3c85d6cc6 03-Apr-2017 Josh Gao <jmgao@google.com> debuggerd_test: add test for process/thread names.

Make sure that we can get the process/thread names for nondumpable
processes with capabilities.

Bug: http://b/36237221
Test: /data/nativetest/debuggerd_test/debuggerd_test32
Change-Id: Iedd4eae18065c2e64abeebff15e3b9b09a630550
/system/core/debuggerd/debuggerd_test.cpp
352a84574dd0f3be0c30d15c0c577c226ec28c2f 31-Mar-2017 Josh Gao <jmgao@google.com> tombstoned: add tests for b/36685795.

Add some tests for edge cases which may have triggered b/36685795.

Bug: http://b/36685795
Test: debuggerd_test
Change-Id: I20670684c8dae422af157be21e44ba5d6d3214d3
/system/core/debuggerd/debuggerd_test.cpp
460b336d6a05a8527633ab5c4509988ebb18ed30 31-Mar-2017 Josh Gao <jmgao@google.com> tombstoned: fix a race between intercept and crash_dump.

Previously, there was no way to detect when tombstoned processed an
intercept request packet, making it possible for a intercept request
followed by a crash_dump being processed in the wrong order.

Add a response to intercept registration, to eliminate this race.

Test: debuggerd_test
Change-Id: If38c6d14081ebc86ff1ed0edd7afaeafc40a8381
/system/core/debuggerd/debuggerd_test.cpp
502cfd22ba0e7bb4f8276438125a959547226f0a 17-Feb-2017 Josh Gao <jmgao@google.com> debuggerd_test: add capability test.

Also, remove the dependency on crasher.

Bug: http://b/35100921
Bug: http://b/35241370
Test: /data/nativetest/debuggerd_test/debuggerd_test32
Test: /data/nativetest64/debuggerd_test/debuggerd_test64
Change-Id: I318f6de764d435251417953bf175ba321b59981f
/system/core/debuggerd/debuggerd_test.cpp
c3c8c029ecc46aa5d9fe6a5ee7c77c8adc5b23b5 14-Feb-2017 Josh Gao <jmgao@google.com> debuggerd_handler: don't use waitpid(..., __WCLONE).

waitpid(..., __WCLONE) fails with ECHILD when passed an explicit PID to
wait for. __WALL and __WCLONE don't seem to be necessary when waiting
for a specific pid, so just pass 0 in the flags instead.

Bug: http://b/35327712
Test: /data/nativetest/debuggerd_test/debuggerd_test32 --gtest_filter="*zombie*"
Change-Id: I3dd7a1bdf7ff35fdfbf631429c089ef4e3172855
/system/core/debuggerd/debuggerd_test.cpp
7a0ee64f9df226012d19cd50ed93117d03cbb01d 07-Feb-2017 Josh Gao <jmgao@google.com> debuggerd_test: improve error when crasher fails to exec.

Bug: http://b/35100742
Test: rm /system/bin/crasher && /data/nativetest/debugerd_test/debuggerd_test32
Change-Id: I02faec3b7f7ef62bb8a2ac2af730506e3d28e03e
/system/core/debuggerd/debuggerd_test.cpp
a7d7eb6d2ae98e1147af678cf7e78ce4ff83e529 07-Feb-2017 Josh Gao <jmgao@google.com> debuggerd_test: fix crasher path.

https://android-review.googlesource.com/#/c/331200 moved crasher to
using soong, which changed its location from /system/xbin/crasher to
/system/bin/crasher.

Bug: http://b/35100742
Test: /data/nativetest/debuggerd_test/debuggerd_test32
Test: /data/nativetest64/debuggerd_test/debuggerd_test64
Change-Id: I16a2050b257277023773cc0c960b5ab36e0c7cd4
/system/core/debuggerd/debuggerd_test.cpp
fca7ca35850438230428a0018d7b933f7c8a847c 23-Jan-2017 Josh Gao <jmgao@google.com> debuggerd_handler: properly crash when PR_GET_DUMPABLE is 0.

Actually exit when receiving a signal via kill(2) or raise(2) and
PR_GET_DUMPABLE is 0.

Bug: none
Test: /data/nativetest/debuggerd_test/debuggerd_test32
Test: /data/nativetest64/bionic-unit-tests/bionic-unit-tests --gtest_filter=pthread_DeathTest.pthread_mutex_lock_null_64
Change-Id: I833a2a34238129237bd9f953959ebda51d8d04d7
/system/core/debuggerd/debuggerd_test.cpp
7c6e3133f57b6c908e211c0013fcb68d5a44d919 23-Jan-2017 Josh Gao <jmgao@google.com> crash_dump: set a watchdog timer.

PTRACE_DETACH is only necessary if the process is in group-stop state,
the tracer exiting is sufficient to detach and resume tracees.

Using this, set a 5 second timer with alarm(2) that just kills us, to
avoid leaving processes stopped.

Bug: http://b/34472671
Test: debuggerd_test
Test: crasher + manually inserting a 10 second sleep into crash_dump
Change-Id: Iacaa796f79037aa1585f3f2159abe45ef0069311
/system/core/debuggerd/debuggerd_test.cpp
cbe70cb0a8cb0171f3802273050e851a47b090ed 19-Oct-2016 Josh Gao <jmgao@google.com> debuggerd: advance our amazing bet.

Remove debuggerd in favor of a helper process that gets execed by
crashing processes.

Bug: http://b/30705528
Test: debuggerd_test
Change-Id: I9906c69473989cbf7fe5ea6cccf9a9c563d75906
/system/core/debuggerd/debuggerd_test.cpp