[Lldb-commits] [PATCH] D48177: Suppress SIGSEGV on Android when the program will recover

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 14 09:52:41 PDT 2018


clayborg created this revision.
clayborg added a reviewer: labath.
Herald added a subscriber: srhines.

SIGSEGV signals are sent to Android processes when a NULL dereference happens in Java code that is being run as native code in dex, odex and oat files. In this patch I modified the Platforms to be allowed to modify a stop reason for a thread. The PlatformAndroid will watch for SIGSEGV stop reasons and see if the frame that caused the SIGSEGV comes from a dex, odex or oat file, and if so, it will suppress the stop reason. Many IDEs are manually figuring this out and learning to skip the signal so users don't see it. Even when IDEs do this, the IDE might end up showing a SIGSEGV as a valid stop reason for a thread. Also, a SIGSEGV thread might be selected when another thread hits a breakpoint. So we suppress these signals to avoid spurious thread changes and improve android debugging.


https://reviews.llvm.org/D48177

Files:
  include/lldb/Target/Platform.h
  source/Plugins/Platform/Android/PlatformAndroid.cpp
  source/Plugins/Platform/Android/PlatformAndroid.h
  source/Target/Thread.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48177.151369.patch
Type: text/x-patch
Size: 4262 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180614/7a1d99de/attachment.bin>


More information about the lldb-commits mailing list