diff options
-rw-r--r-- | include/sanitizer/coverage_interface.h | 8 | ||||
-rw-r--r-- | lib/asan/asan_win_dll_thunk.cc | 2 | ||||
-rw-r--r-- | lib/sanitizer_common/sanitizer_coverage_libcdep.cc | 24 | ||||
-rw-r--r-- | test/asan/TestCases/coverage-pc-buffer.cc | 49 |
4 files changed, 0 insertions, 83 deletions
diff --git a/include/sanitizer/coverage_interface.h b/include/sanitizer/coverage_interface.h index 72ac843fa..ecbc50287 100644 --- a/include/sanitizer/coverage_interface.h +++ b/include/sanitizer/coverage_interface.h @@ -59,14 +59,6 @@ extern "C" { uintptr_t __sanitizer_update_counter_bitset_and_clear_counters(uint8_t *bitset); - // EXPERIMENTAL API - // Set allocated buffer to record new coverage PCs as they are executed. - // Buffer length is specified in uptrs. - void __sanitizer_set_coverage_pc_buffer(uintptr_t *buffer, uintptr_t length); - // Number of pcs recorded in the buffer. - // Reset by __sanitizer_reset_coverage(); - uintptr_t __sanitizer_get_coverage_pc_buffer_pos(); - #ifdef __cplusplus } // extern "C" #endif diff --git a/lib/asan/asan_win_dll_thunk.cc b/lib/asan/asan_win_dll_thunk.cc index 607af703b..364d00d89 100644 --- a/lib/asan/asan_win_dll_thunk.cc +++ b/lib/asan/asan_win_dll_thunk.cc @@ -326,7 +326,6 @@ INTERFACE_FUNCTION(__sanitizer_cov_trace_func_enter) INTERFACE_FUNCTION(__sanitizer_cov_with_check) INTERFACE_FUNCTION(__sanitizer_get_allocated_size) INTERFACE_FUNCTION(__sanitizer_get_coverage_guards) -INTERFACE_FUNCTION(__sanitizer_get_coverage_pc_buffer_pos) INTERFACE_FUNCTION(__sanitizer_get_current_allocated_bytes) INTERFACE_FUNCTION(__sanitizer_get_estimated_allocated_size) INTERFACE_FUNCTION(__sanitizer_get_free_bytes) @@ -346,7 +345,6 @@ INTERFACE_FUNCTION(__sanitizer_reset_coverage) INTERFACE_FUNCTION(__sanitizer_get_number_of_counters) INTERFACE_FUNCTION(__sanitizer_update_counter_bitset_and_clear_counters) INTERFACE_FUNCTION(__sanitizer_sandbox_on_notify) -INTERFACE_FUNCTION(__sanitizer_set_coverage_pc_buffer) INTERFACE_FUNCTION(__sanitizer_set_death_callback) INTERFACE_FUNCTION(__sanitizer_set_report_path) INTERFACE_FUNCTION(__sanitizer_set_report_fd) diff --git a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc index efa7db9bd..0661e5ff5 100644 --- a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc @@ -113,8 +113,6 @@ class CoverageData { uptr *data(); uptr size() const; - void SetPcBuffer(uptr* data, uptr length); - private: struct NamedPcRange { const char *copied_module_name; @@ -145,9 +143,6 @@ class CoverageData { // Descriptor of the file mapped pc array. fd_t pc_fd; - uptr *pc_buffer; - uptr pc_buffer_len; - // Vector of coverage guard arrays, protected by mu. InternalMmapVectorNoCtor<s32*> guard_array_vec; @@ -219,9 +214,6 @@ void CoverageData::Enable() { atomic_store(&pc_array_size, kPcArrayMaxSize, memory_order_relaxed); } - pc_buffer = nullptr; - pc_buffer_len = 0; - cc_array = reinterpret_cast<uptr **>(MmapNoReserveOrDie( sizeof(uptr *) * kCcArrayMaxSize, "CovInit::cc_array")); atomic_store(&cc_array_size, kCcArrayMaxSize, memory_order_relaxed); @@ -427,7 +419,6 @@ void CoverageData::Add(uptr pc, u32 *guard) { atomic_load(&pc_array_size, memory_order_acquire)); uptr counter = atomic_fetch_add(&coverage_counter, 1, memory_order_relaxed); pc_array[idx] = BundlePcAndCounter(pc, counter); - if (pc_buffer && counter < pc_buffer_len) pc_buffer[counter] = pc; } // Registers a pair caller=>callee. @@ -881,11 +872,6 @@ void CoverageData::DumpAll() { DumpCallerCalleePairs(); } -void CoverageData::SetPcBuffer(uptr* data, uptr length) { - pc_buffer = data; - pc_buffer_len = length; -} - void CovPrepareForSandboxing(__sanitizer_sandbox_arguments *args) { if (!args) return; if (!coverage_enabled) return; @@ -1021,16 +1007,6 @@ uptr __sanitizer_get_coverage_guards(uptr **data) { } SANITIZER_INTERFACE_ATTRIBUTE -void __sanitizer_set_coverage_pc_buffer(uptr *data, uptr length) { - coverage_data.SetPcBuffer(data, length); -} - -SANITIZER_INTERFACE_ATTRIBUTE -uptr __sanitizer_get_coverage_pc_buffer_pos() { - return __sanitizer_get_total_unique_coverage(); -} - -SANITIZER_INTERFACE_ATTRIBUTE uptr __sanitizer_get_number_of_counters() { return coverage_data.GetNumberOf8bitCounters(); } diff --git a/test/asan/TestCases/coverage-pc-buffer.cc b/test/asan/TestCases/coverage-pc-buffer.cc deleted file mode 100644 index dd9beafb1..000000000 --- a/test/asan/TestCases/coverage-pc-buffer.cc +++ /dev/null @@ -1,49 +0,0 @@ -// Test __sanitizer_coverage_pc_buffer(). - -// RUN: %clangxx_asan -fsanitize-coverage=edge %stdcxx11 %s -O3 -o %t && %run %t - -// UNSUPPORTED: android - -#include <assert.h> -#include <memory> -#include <sanitizer/coverage_interface.h> -#include <stdint.h> -#include <stdio.h> - -static volatile int sink; -__attribute__((noinline)) void foo() { sink = 1; } - -void assertNotZeroPcs(uintptr_t *buf, uintptr_t size) { - assert(buf); - for (uintptr_t i = 0; i < size; ++i) - assert(buf[i]); -} - -int main() { - uintptr_t buf_size = 1 << 20; - std::unique_ptr<uintptr_t[]> buf(new uintptr_t[buf_size]); - __sanitizer_set_coverage_pc_buffer(buf.get(), buf_size); - - { - uintptr_t sz = __sanitizer_get_coverage_pc_buffer_pos(); - assertNotZeroPcs(buf.get(), sz); - assert(sz); - } - - { - uintptr_t sz = __sanitizer_get_coverage_pc_buffer_pos(); - foo(); - uintptr_t sz1 = __sanitizer_get_coverage_pc_buffer_pos(); - assertNotZeroPcs(buf.get(), sz1); - assert(sz1 > sz); - } - - { - uintptr_t sz = __sanitizer_get_coverage_pc_buffer_pos(); - // reset coverage to 0. - __sanitizer_reset_coverage(); - uintptr_t sz1 = __sanitizer_get_coverage_pc_buffer_pos(); - assertNotZeroPcs(buf.get(), sz1); - assert(sz1 < sz); - } -} |