| Index: docs/memory-infra/heap_profiler.md
|
| diff --git a/docs/memory-infra/heap_profiler.md b/docs/memory-infra/heap_profiler.md
|
| index 0910b641bf2ab9b2e67b123158964e99f3232f57..7601867aab0730a36ae20330f9e0380e41f51f7a 100644
|
| --- a/docs/memory-infra/heap_profiler.md
|
| +++ b/docs/memory-infra/heap_profiler.md
|
| @@ -38,20 +38,47 @@ integrated with the chrome://tracing ecosystem.
|
| By default heap profiling collects pseudo allocation traces, which are based
|
| on trace events. I.e. frames in allocation traces correspond to trace events
|
| that were active at the time of allocations, and are not real function names.
|
| -However, you can build a special Linux / Android build that will collect
|
| -real C/C++ stack traces.
|
| +It's also possible to use heap profiling with native, symbolized stack traces.
|
| +
|
| +#### Native stack traces (Chrome - macOS/Windows)
|
| +
|
| +1. Using any officially distributed build of Chrome, navigate to chrome://flags,
|
| + and set "enable-heap-profiling" to Enabled (native mode).
|
| +
|
| +2. Use the [TraceOnTap][extension-link] extension to grab a trace.
|
| +
|
| +3. Run the following script to symbolize the trace.
|
| +
|
| + third_party/catapult/tracing/bin/symbolize_trace <trace file>
|
| +
|
| +4. Load the trace file in `chrome://tracing`. Locate a purple ![M][m-purple]
|
| + dot, and continue from step *3* from the instructions above. Native stack
|
| + traces will be shown in the _Heap Details_ pane.
|
| +
|
| +[extension-link]: https://cs.chromium.org/chromium/src/third_party/catapult/experimental/trace_on_tap/?q=traceontap+package:%5Echromium$&dr=CSs
|
| +
|
| +#### Native stack traces (Chromium - all OSes)
|
| +
|
| +On Linux / Android, you need to build Chromium with special flags to use native
|
| +heap profiling. On macOS / Windows, it's also possible to use native heap
|
| +profiling with Chromium.
|
|
|
| 1. Build with the following GN flags:
|
|
|
| - Linux
|
| + macOS / Windows
|
|
|
| - enable_profiling = true
|
| + symbol_level = 1
|
| +
|
| + Linux
|
|
|
| + enable_profiling = true
|
| + symbol_level = 1
|
|
|
| Android
|
|
|
| arm_use_thumb = false
|
| enable_profiling = true
|
| + symbol_level = 1
|
|
|
| 2. Start Chrome with `--enable-heap-profiling=native` switch (notice
|
| `=native` part).
|
|
|