path: root/debuggerd/
AgeCommit message (Collapse)Author
2015-11-02Turn off -Wdate-time for crasherDan Willemsen
This is an optional diagnostic tool where it's useful to know if you are running the version that you just built. Allow the use of __TIME__ without a warning or error. Bug: 24204119 Change-Id: I78063c2694b80ccaf5891d1cd649ea17eda978cb
2015-09-22Revert "Revert "Revert "Revert "Add BacktraceOffline for offline ↵Yabin Cui
backtracing."""" This reverts commit 94ece83270deca76c69f5755f8c0ff5c859341fd. Change-Id: Ie06465c89a5fc115517130f9f2904cc855973155
2015-09-22Revert "Revert "Revert "Add BacktraceOffline for offline backtracing."""Yabin Cui
This reverts commit 0a411c934a81e5c77a27ef5b69d391038f36e969. Change-Id: Ic1824afac6c32f1087b66de9d6368a561f235d13
2015-09-21Revert "Revert "Add BacktraceOffline for offline backtracing.""Yabin Cui
This reverts commit ab5e583327e4dfd9f7c38ab6ed4c4714508ce544. And statically link llvm libraries on host to remove dependency on 32-bit llvm shared library which is not included in the prebuilt. Bug: 22229391 Change-Id: I8210687655ee1809fd820ab2a6ca5dfaf3f9096d
2015-08-21bundle init.rc contents with its serviceTom Cherry
Bug: 23186545 Change-Id: I52616b8ab1165fdef716f9b8f958665f2308c12e
2015-07-01Replace all _LOG error calls with ALOGE.Christopher Ferris
The debuggerd code sometimes calls _LOG(..., logtype::ERROR, ...) and sometimes ALOGE(). Standardize on ALOGE since the _LOG message will wind up in the tombstone in weird places, but using ALOGE will wind up in the logcat portion of the tombstone. Bug: 21467089 Change-Id: Ie893f5e91d45b48ef3f5864c3a714e60ac848fb3
2015-06-03Change the 64 bit map address format.Christopher Ferris
Previously, the map printing in tombstones for 64 bit devices uses a variable length value. This means that the maps are not lined up. The new format is to print the map as 00000000'00000000 in all ways. Also fix a bug where the backtrace_map_t did not initialize all parameters. Add unit tests for all of the dump_all_maps function. Bug: 20950813 Change-Id: I30901c8a0251b00d85c4c01476b033ef8db84e32
2015-05-27Refactor dump_memory function.Christopher Ferris
- Add dumping memory around registers for x86/x86_64. - Add unit tests for new dump_memory function. - Cleanup all of the machine.cpp files. - Increase the high address check for 32 bit, and decrease the high address allowed for 64 bit slightly to match mips64. Bug: 21206576 Change-Id: I6f75141f3282db48b10f7c695a1cf2eb75a08351
2015-03-17Print the build id of shared libraries if present.Christopher Ferris
For every map that has a name, and if it's a mapped in shared library, print the build id. Refactor the way dump_all_maps logs data. Refactor the way stack segments are dumped. Bug: 19371018 Change-Id: Ic08d05a4b13f128925743936fb84d8059f7cb56f
2015-03-09Add backtrace support for mips64.Douglas Leung
Change-Id: I12ea2fcbe6780bb596f51988eae1ceafcec858df
2015-01-20Move 32 bit/64 bit check into debuggerd.Christopher Ferris
On 64 bit systems, calls to dump_backtrace_to_file or dump_tombstone try and directly contact the correct debuggerd (32 bit vs 64 bit) by reading the elf information for the executable. Unfortunately, system_server makes a call to dump_backtrace_to_file and it doesn't have permissions to read the executable data, so it defaults to always contacting the 64 bit debuggerd. This CL changes the code so that all dump requests go to the 64 bit debuggerd, which reads the elf information and redirects requests for 32 bit processes to the 32 bit debuggerd. Testing: - Forced the watchdog code in system_server to dump stacks and verified that all native stacks are dumped correctly. - Verified that dumpstate and bugreport still properly dump the native processes on a 64 bit and 32 bit system. - Intentionally forced the 64 bit to 32 bit redirect to write only a byte at a time and verified there are no errors, and no dropped data. - Used debuggerd and debuggerd64 to dump 32 bit and 64 bit processes seemlessly. - Used debuggerd on a 32 bit system to dump native stacks. Bug: Change-Id: Ie01945153bdc1c4ded696c7334b61d58575314d1
2014-12-18#include <arpa/inet.h> for htonl.Elliott Hughes
Not sure why this only shows up with clang. Change-Id: Id5603483e32f8a8d4b091dbb31b3142e3f77deac
2014-11-15Move debuggerd to libc++.Dan Albert
Bug: 15193147 Change-Id: I935a08e98077b688d1735fb5b84a615cb7df8810
2014-07-09Fix arm emulator "D register out of range for selected VFP version" build ↵Elliott Hughes
failure. Change-Id: Ia37cb3f8ecb00a927fa3fc8b4131c158413646e7
2014-07-09Integrate vfp-crasher with crasher.Elliott Hughes
There's no good reason to separate "fill the integer registers with recognizable patterns and crash" from "fill the FP registers with recognizable patterns and crash". Also remove the incorrect use of ARCH_ARM_HAVE_VFP_D32 rather than try to fix it. Change-Id: I3a4a3aca1575de5489314027ae52168997404d79
2014-06-03Merge "[MIPS64] Build debuggerd for mips64"Elliott Hughes
2014-06-03[MIPS64] Build debuggerd for mips64Duane Sand
Change-Id: I361e9668baa218fc01e723c2df1a34ca6329cf47
2014-06-03Clean up the debuggerd makefile.Elliott Hughes
In particular, turn on -Wunused, which is globally off by default thanks to build/core/ Change-Id: Iba3ee1c0726f43eced972a53959f0e1cd97190c9
2014-05-02debuggerd: turn on -WerrorMark Salyzyn
- Deal with some -Wunused / -Wunused-variable issues Change-Id: I39849fe30170f69d1cab7d4ad2629b3a49e14ee7
2014-03-26debuggerd: use LOCAL_MULTILIBColin Cross
Use LOCAL_MULTILIB to build multiple versions of executables instead of manually creating two build rules. Change-Id: I1a993ff7b5f527a88735f46eec9822bb97d16490
2014-02-12build debuggerd and debuggerd64 on 64-bit architecturesColin Cross
Change-Id: I1518d45ae0c5e0fed31d071fdaf19a67bad1bdfc
2014-01-31LP64 should have debuggerd and debuggerd64.Elliott Hughes
Change-Id: I4e39c200e6867bb9a5bbcfec1c449b8864028feb
2014-01-30AArch64: Port debuggerdKévin PETIT
Change-Id: Ib18f76f375a1d70c84e0a09d221e17ac43144b96 Signed-off-by: Kévin PETIT <>
2014-01-30LP64: Enable debuggerd/libbacktrace/libunwind.Pavel Chupin
Change-Id: I2e432839f86c33c2adbaac8cc12ca8961956044b Signed-off-by: Pavel Chupin <>
2014-01-10Move to C++ for debuggerd.Christopher Ferris
This is part 1, only including the bare minimum changes because our diff tool doesn't easily show differences when a file moves. This also breaks it into a small chunk in case some other changes break things, as unlikely as I think that will be. Change-Id: Ib7a3e7a2cc1ac574d15b65fda23813ebcf5d31af
2013-10-03Update debuggerd to use libbacktrace.Christopher Ferris
Remove all of the code in debuggerd that uses libcorkscrew directly and replace with libbacktrace. Also do a bit of refactoring to clean up some functions that were passing around variables that weren't used. Bug: 8410085 Change-Id: I27da4fbe3f12ce38a85b4432fc1119984c9c391b
2013-04-09Add liblogYing Wang
Bug: 8580410 Change-Id: Iab3a9b4307f207c14a04a922cc7350c54e60e9ad
2013-02-14Add a "smash-stack" option to crasher.Elliott Hughes
bionic's __stack_chk_fail was preventing debuggerd from dumping stacks, which was not helpful. Bug: 2487269 Change-Id: Idba2a274037b960dfb2ac1c21686323268c4b372
2012-10-16Remove HAVE_SELINUX guardsKenny Root
Change-Id: I8272c573b3c5dc663203bafab68fad5e94d89364
2012-08-10[MIPS] debuggerd and libcorkscrew supportChris Dearman
Change-Id: I5a241dc2e470148be0ad2c138e31f1aba5ab8812
2012-07-19restorecon tombstone directory.rpcraig
Restore the security contexts of tombstone directory when initially created. Change-Id: I25b53730991576eccb62ca57050decd584acc639 Signed-off-by: rpcraig <>
2012-06-08Enhance native stack dumps.Jeff Brown
Provides a new mechanism for dumpstate (while running as root) to request that debuggerd dump the stacks of native processes that we care about in bug reports. In this mode, the backtrace is formatted to look similar to a Dalvik backtrace. Moved the tombstone generating code into a separate file to make it easier to maintain. Fixed a bug where sometimes the stack traces would be incomplete because we were not waiting for each thread to stop after issuing PTRACE_ATTACH, only the main thread. So sometimes we were missing traces for some threads. Refactored the logging code to prevent accidentally writing data to logcat when explicitly dumping a tombstone or backtrace from the console. Only root or system server can request to dump backtraces but only root can dump tombstones. Bug: 6615693 Change-Id: Ib3edcc16f9f3a687e414e3f2d250d9500566123b
2011-10-22Use libcorkscrew in debuggerd.Jeff Brown
Change-Id: I5e3645a39d96c808f87075b49111d0262a19a0c8
2011-01-23remove crasher and vfp-crasher from standard buildsBrian Swetland
These are only for debuggerd testing. Change-Id: If2d2ff85e8c182d366cc251e9446ae7fdd094e55
2010-11-29debuggerd: IA versionBruce Beare
Change-Id: I0c0d9c2d7e476b8d117aaf505a9480a47c0b5c05 Signed-off-by: Lei Li <> Signed-off-by: Bruce Beare <>
2010-11-29debuggerd: Reorganize to facilitate IA commitBruce Beare
Change-Id: I22dd02daf617672fc0a8ba7e396017c57f17e26e Signed-off-by: Bruce Beare <>
2010-06-10merge from open-source masterThe Android Open Source Project
Change-Id: I50b7bc6faa6d0abd4998cae8fc7dda1e8fa49407
2010-05-24debuggerd: Show function names in tombstone backtracesMeng Hu
This change enables debuggerd to provide backtraces with function names in tombstone files and log messages. It does this by reading the image file that the address is found in, and parsing the dynamic symbol table to try to extract the symbol corresponding to the given address. This works best when "-Wl,-export-dynamic" is added to the LDFLAGS of each library and executable, because this will cause all symbols to be added to the dynamic symbol table. If this flag is not present, it will still work, but it will only be able to identify functions which are part of the external API of the library/executable. Change-Id: I618baaff9ed9143b7d1a1f302224e9f21d2b0626
2010-03-10Use arch flags instead of TARGET_ARCH_VARIANT, and add support for VFP_D16Colin Cross
Change-Id: I6007ff21076e92b04a17fb030472a9f8842f0315
2009-12-17Dump VFP registers and status word when native app crashes.Ben Cheng
Bug: 2226399 Caveat: d0/d1 appear to be clobbered by ptrace. It will be tracked by a new bug.
2009-03-03auto import from //depot/cupcake/@135843The Android Open Source Project
2009-03-03auto import from //depot/cupcake/@135843The Android Open Source Project
2008-12-17Code drop from //branches/cupcake/...@124589The Android Open Source Project
2008-10-21Initial ContributionThe Android Open Source Project