0

Update the memory profiling doc with recent changes

We removed the pseudo stack mode. Update instructions about
arm64 and x86-64 profiling. Also specify not to use component build
for profiling.

BUG= 1199271

Change-Id: I8b1cce693d38c12f92dc9526fca1893bb276fd9b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2980940
Reviewed-by: Erik Chen <erikchen@chromium.org>
Commit-Queue: ssid <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#895428}
This commit is contained in:
ssid
2021-06-24 02:13:19 +00:00
committed by Chromium LUCI CQ
parent e06b1fa908
commit c791b8b07c

@ -30,19 +30,24 @@ be enabled via chrome://memory-internals or about://flags.
* If you run into the error "Nothing to symbolize" then backtraces are not
working properly. There are two mechanisms that Chrome attempts to use:
frame pointers if they're present, and backtrace lib. The former can be
forced on with enable_frame_pointers gn arg. This should work on all architectures except for
arm 32.The latter depends on unwind tables.
forced on with enable_frame_pointers gn arg. This should work on all architectures except for
arm 32. The latter depends on unwind tables.
5. Load the (now symbolized) trace in chrome://tracing.
## How to obtain a heap dump (M66+, Android)
To obtain native heap dumps, you will need a custom build of Chrome with the GN
arguments `enable_profiling = true`, `arm_use_thumb = false` and
`symbol_level=1`. All other steps are the same.
On arm64 and x86-64, you can build chrome normally and follow steps above to
obtain heap dumps.
Alternatively, if you want to use an Official build of Chrome, navigate to
chrome://flags and set `memlog-stack-mode` to `pseudo`. This will provide
less-detailed stacks. The stacks also don't require symbolization.
To obtain native heap dumps on arm32, you will need a custom build of Chrome
with the GN arguments `enable_profiling = true`, `arm_use_thumb = false`,
`is_component_build = false` and `symbol_level=1`. All other steps are the same.
Alternatively, if you want to use an official build of Chrome, use
`is_official_build = true` for arm32. If you want to use a released build,
profiling only works on Dev and Canary on arm, and all channels on x86-64. In
this case, you also need to fetch symbols manually and pass to the
symbolize_trace script above.
## How to obtain a heap dump (M65 and older)