• Sara Tang's avatar
    Step 2 (of 2) for ETW integration into V8 · 88926769
    Sara Tang authored
    Design doc:
    https://docs.google.com/document/d/1xkXj94iExFgLWc_OszTNyNGi523ARaKMWPZTeomhI4U
    
    This is the second (and hopefully final!) change list needed to
    integrate ETW into V8. In particular, we added stack-walking
    functionality for JIT-ted functions!
    
    Some notes on instrumentation:
      - The gist of getting stack-walking in ETW is we need to emit events
        with specific event IDs. These events get stitched into a pseudo-PDB
        that is recognizable by ETW.
      - Unfortunately, we cannot rely on the TraceLogging API from the first
        CL, as it does not support specifying event IDs. Instead, Bill
        Ticehurst wrote an API that peels back the TraceLogging API just
        enough so that we can specify event IDs. This API is the entirety of
        etw-metdata.h
      - We attach a CodeEventHandler that logs a stack-walking event whenever
        code movement is triggered.
    
    Bug: v8:11043
    Change-Id: I1bf57c985b7375f045089027855b1c03878abb78
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2616221Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Commit-Queue: Sara Tang <sartang@microsoft.com>
    Cr-Commit-Position: refs/heads/master@{#73145}
    88926769
recorder.h 1.22 KB