Skip to content
  • wez's avatar
    Cleaner fall-back stack capture for --enable-heap-profiling=native. · 460b1244
    wez authored
    This generalizes the fall-back to using base::debug::StackTrace to
    capture stack traces in builds which lack frame pointers, allowing
    native heap profiling to generate useful data, albeit with a more
    significant performance penalty.
    
    Changes made in the earlier patch for native heap profiling stack
    capture under Windows are un-done in favour of the following:
    1. MemoryDumpManager always allows native heap profiling[1].
    2. HeapProfilerAllocationContextTracker chooses whether to use
       base::debug::StackTrace or TraceStackFramePointers() based on
       the value of BUILDFLAG(CAN_UNWIND_WITH_FRAME_POINTERS).
    3. BUILDFLAG(CAN_UNWIND_WITH_FRAME_POINTERS) is no longer defined in
       configurations which we cannot use frame pointers for unwinding[2].
    
    [1] Though note that only certain build configs actually support
        the necessary allocator shims; this will be addressed later.
    [2] Frame pointers are only available in profiling & Debug builds on
        some platforms, and are available but unsuitable for us to use for
        stack unwinding, on others.
    
    BUG=686208
    
    Review-Url: https://codereview.chromium.org/2757123002
    Cr-Original-Commit-Position: refs/heads/master@{#460311}
    Committed: https://chromium.googlesource.com/chromium/src/+/22b017b9b241c47db8cf25c57c89c0b0d7fcfbe2
    Review-Url: https://codereview.chromium.org/2757123002
    Cr-Commit-Position: refs/heads/master@{#463411}
    460b1244