New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 719969 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Hotlist-MemoryInfra



Sign in to add a comment

Trace symbolisation on windows should fetch symbols from servers

Project Member Reported by etienneb@chromium.org, May 9 2017

Issue description

The current symbolisation python script is assuming the debug files are local.

To ease interaction with users sending us trace, we should be able to symbolize a trace without the need of the user executable or without asking the user to run the symbolisation script.

On windows, the symbols servers provide PDB files and can be accessed with the code identifier.
On linux/max, the chrome version should be enough to retrieve the original executable.

The script should still work for custom local build

 
Summary: Trace symbolisation on windows should fetch symbols from servers (was: Trace symbolisation on windows should be fetch symbols from servers)
Status: Assigned (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, May 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a81e171d89732c62f3e8d1846ea685baa87ecd6f

commit a81e171d89732c62f3e8d1846ea685baa87ecd6f
Author: etienneb <etienneb@chromium.org>
Date: Wed May 31 16:01:56 2017

Adding PE TimeStamp to chrome trace to ease retrieving debug information

On windows, symbols servers can be queried to retrieve debug information.
The code identifier is used as a key to retrieve the exact executable.

Current chrome memory dump contains the loaded module and their loaded addresses.
example:
  {"bs":{"pc":"0","pd":"0","pss":"0","sc":"0","sd":"0","sw":"0"},"mf":"C:\\Windows\\system32\\powrprof.dll","pf":0,"sa":"7ffdae7a0000","sz":"4b000"},

But to uniquely identify them and being able to retrieve debug information from
symbols servers, the TimeStamp present in PE header is required.

This patch is adding the "ts" (TimeStamp) field.

{"bs":{"pc":"0","pd":"0","pss":"0","sc":"0","sd":"0","sw":"0"},"mf":"C:\\Windows\\SYSTEM32\\ntdll.dll","pf":0,"sa":"7ffdb2170000","sz":"1c1000","ts":"580ee321"},

From these information one can query MS/Google symbols servers.
  https://msdl.microsoft.com/download/symbols/ntdll.dll/580EE3211C1000/ntdll.dl_
                                              basename / code-ident   /dll

The code-identifier is built from the timestamp AND the size of the executable

CC=chrisha@chromium.org, erikchen@chromium.org
R=primiano@chromium.org

BUG=719969
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng

Review-Url: https://codereview.chromium.org/2869073002
Cr-Commit-Position: refs/heads/master@{#475930}

[modify] https://crrev.com/a81e171d89732c62f3e8d1846ea685baa87ecd6f/base/BUILD.gn
[modify] https://crrev.com/a81e171d89732c62f3e8d1846ea685baa87ecd6f/base/trace_event/process_memory_maps.cc
[modify] https://crrev.com/a81e171d89732c62f3e8d1846ea685baa87ecd6f/base/trace_event/process_memory_maps.h
[modify] https://crrev.com/a81e171d89732c62f3e8d1846ea685baa87ecd6f/base/win/BUILD.gn
[modify] https://crrev.com/a81e171d89732c62f3e8d1846ea685baa87ecd6f/components/tracing/BUILD.gn
[modify] https://crrev.com/a81e171d89732c62f3e8d1846ea685baa87ecd6f/components/tracing/common/process_metrics_memory_dump_provider.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/175bf817dbbb2b3f775127f3b84b4cfd7845fcde

commit 175bf817dbbb2b3f775127f3b84b4cfd7845fcde
Author: catapult-deps-roller@chromium.org <catapult-deps-roller@chromium.org>
Date: Fri Jun 16 18:57:03 2017

Roll src/third_party/catapult/ 59a182b2a..e9dc4c57f (16 commits)

https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git/+log/59a182b2a694..e9dc4c57fb00

$ git log 59a182b2a..e9dc4c57f --date=short --no-merges --format='%ad %ae %s'
2017-06-16 eakuefner [Telemetry] Shim telemetry.internal.util.camel_case
2017-06-16 nednguyen Set default value for TracedMetaClass to avoid import error when trace_event_impl is undefined
2017-06-16 xunjieli Migrate web-page-replay-go files
2017-06-16 mboehme Clip slices to the horizontal bounds of the viewport.
2017-06-15 benjhayden Make common/battor/bin/run_py_tests executable.
2017-06-15 dproy Add function to calculate First Consistently Interactive.
2017-06-15 eakuefner [Tracing] Move Python HistogramSet into tracing.value.histogram_set
2017-06-15 etienneb Add support for fetching symbols from GCS for windows traces
2017-06-15 eakuefner [Telemetry] Delete telemetry.internal.util.classes
2017-06-15 benjhayden Document all the scripts in tracing/bin/.
2017-06-15 ashleymarie Adding names for stories in unittests
2017-06-15 benjhayden Rename valueset2html to histograms2html.
2017-06-15 benjhayden Fix metrics-results-ui-significance-threshold-slider.png
2017-06-15 benjhayden Remove dead code iterObjectFieldsRecursively.
2017-06-15 eakuefner [Telemetry] Move camel_case to common/py_utils
2017-06-15 dskiba [experimental] symbolize_trace: fix include paths

Created with:
  roll-dep src/third_party/catapult
BUG=719969, 720002 


Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls


CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel
TBR=sullivan@chromium.org

Change-Id: I044b424973ad6cca6e37f8a39e71e4a2d62975a2
Reviewed-on: https://chromium-review.googlesource.com/538852
Reviewed-by: <catapult-deps-roller@chromium.org>
Commit-Queue: <catapult-deps-roller@chromium.org>
Cr-Commit-Position: refs/heads/master@{#480112}
[modify] https://crrev.com/175bf817dbbb2b3f775127f3b84b4cfd7845fcde/DEPS

Sign in to add a comment