• Wez's avatar
    Flush coverage statistics in process fast-exit & debug-break paths. · d2031d30
    Wez authored
    Defines a base::debug::WriteClangCoverageProfile() API which performs
    an explicit call to __llvm_profile_dump() in CLANG_COVERAGE builds, with
    locking to ensure thread-safety.
    
    This API is invoked in the base::debug::BreakDebugger() and
    base::Process::TerminateCurrentProcessImmediately() APIs, immediately
    prior to them terminating the process, to mirror the coverage-writing
    step that would be performed via an at-exit handler during a normal
    process-exit.
    
    This ensures that we get as complete coverage data as possible from
    processes which fast-terminate/break (e.g. EXPECT_DEATH() sub-processes,
    e.g. browser child processes, etc).
    
    Bug: 849369
    Change-Id: I38262334bb5abf8d5ba40c2c32352b38096905ec
    Reviewed-on: https://chromium-review.googlesource.com/1172932Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
    Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
    Reviewed-by: default avatarMax Moroz <mmoroz@chromium.org>
    Commit-Queue: Wez <wez@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#583882}
    d2031d30
BUILD.gn 113 KB