libart.so is built with flag -fvisibility=protected
which complicates setting breakpoints on art_sigsegv_fault.
According to the GCC manual "Protected visibility indicates
that the symbol will be placed in the dynamic symbol table,
but that references within the defining module will bind
to the local symbol.". This implies that a breakpoint on
a protected symbol will not be hit.
Without this change gdbclient with ART debugging enabled
doesn't break at art_sigsegv_fault as expected.
Change-Id: Ib73344e710966eddf55a6facb29558504a511f00
FaultManager fault_manager;
extern "C" {
+
+__attribute__ ((visibility ("default")))
void art_sigsegv_fault() {
// Set a breakpoint here to be informed when a SIGSEGV is unhandled by ART.
VLOG(signals)<< "Caught unknown SIGSEGV in ART fault handler - chaining to next handler.";