Use scudo_stack_depot_size from process_info
This is a no-op but will be used in upcoming scudo changes that allow to change the depot size at process startup time, and as such we will no longer be able to call __scudo_get_stack_depot_size in debuggerd. We already did the equivalent change for the ring buffer size in https://r.android.com/q/topic:%22scudo_ring_buffer_size%22 Bug: 309446692 Change-Id: I761a7602c54a1f8f2d0575c5e011820d8dbaab63
This commit is contained in:
parent
c7c6605c35
commit
e8fcfee409
6 changed files with 6 additions and 1 deletions
|
@ -317,6 +317,7 @@ static void ReadCrashInfo(unique_fd& fd, siginfo_t* siginfo,
|
|||
process_info->gwp_asan_state = crash_info->data.d.gwp_asan_state;
|
||||
process_info->gwp_asan_metadata = crash_info->data.d.gwp_asan_metadata;
|
||||
process_info->scudo_stack_depot = crash_info->data.d.scudo_stack_depot;
|
||||
process_info->scudo_stack_depot_size = crash_info->data.d.scudo_stack_depot_size;
|
||||
process_info->scudo_region_info = crash_info->data.d.scudo_region_info;
|
||||
process_info->scudo_ring_buffer = crash_info->data.d.scudo_ring_buffer;
|
||||
process_info->scudo_ring_buffer_size = crash_info->data.d.scudo_ring_buffer_size;
|
||||
|
|
|
@ -395,6 +395,7 @@ static int debuggerd_dispatch_pseudothread(void* arg) {
|
|||
ASSERT_SAME_OFFSET(scudo_region_info, scudo_region_info);
|
||||
ASSERT_SAME_OFFSET(scudo_ring_buffer, scudo_ring_buffer);
|
||||
ASSERT_SAME_OFFSET(scudo_ring_buffer_size, scudo_ring_buffer_size);
|
||||
ASSERT_SAME_OFFSET(scudo_stack_depot_size, scudo_stack_depot_size);
|
||||
ASSERT_SAME_OFFSET(recoverable_gwp_asan_crash, recoverable_gwp_asan_crash);
|
||||
#undef ASSERT_SAME_OFFSET
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ struct __attribute__((packed)) debugger_process_info {
|
|||
const char* scudo_region_info;
|
||||
const char* scudo_ring_buffer;
|
||||
size_t scudo_ring_buffer_size;
|
||||
size_t scudo_stack_depot_size;
|
||||
bool recoverable_gwp_asan_crash;
|
||||
};
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ struct ProcessInfo {
|
|||
uintptr_t scudo_region_info = 0;
|
||||
uintptr_t scudo_ring_buffer = 0;
|
||||
size_t scudo_ring_buffer_size = 0;
|
||||
size_t scudo_stack_depot_size = 0;
|
||||
|
||||
bool has_fault_address = false;
|
||||
uintptr_t untagged_fault_address = 0;
|
||||
|
|
|
@ -42,7 +42,7 @@ ScudoCrashData::ScudoCrashData(unwindstack::Memory* process_memory,
|
|||
}
|
||||
|
||||
auto stack_depot = AllocAndReadFully(process_memory, process_info.scudo_stack_depot,
|
||||
__scudo_get_stack_depot_size());
|
||||
process_info.scudo_stack_depot_size);
|
||||
auto region_info = AllocAndReadFully(process_memory, process_info.scudo_region_info,
|
||||
__scudo_get_region_info_size());
|
||||
std::unique_ptr<char[]> ring_buffer;
|
||||
|
|
|
@ -99,6 +99,7 @@ struct __attribute__((__packed__)) CrashInfoDataDynamic : public CrashInfoDataSt
|
|||
uintptr_t scudo_region_info;
|
||||
uintptr_t scudo_ring_buffer;
|
||||
size_t scudo_ring_buffer_size;
|
||||
size_t scudo_stack_depot_size;
|
||||
bool recoverable_gwp_asan_crash;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue