Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(618)

Side by Side Diff: build/android/tombstones.py

Issue 1660693002: Add --output-dir flag to third_party/android_platform/development/scripts/stack (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix fix fix Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/android/asan_symbolize.py ('k') | third_party/android_platform/README.chromium » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2013 The Chromium Authors. All rights reserved. 3 # Copyright 2013 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 # 6 #
7 # Find the most recent tombstone file(s) on all connected devices 7 # Find the most recent tombstone file(s) on all connected devices
8 # and prints their stacks. 8 # and prints their stacks.
9 # 9 #
10 # Assumes tombstone file was created with current symbols. 10 # Assumes tombstone file was created with current symbols.
11 11
12 import datetime 12 import datetime
13 import logging 13 import logging
14 import multiprocessing 14 import multiprocessing
15 import os 15 import os
16 import re 16 import re
17 import subprocess 17 import subprocess
18 import sys 18 import sys
19 import optparse 19 import optparse
20 20
21 import devil_chromium 21 import devil_chromium
22 22
23 from devil.android import device_blacklist 23 from devil.android import device_blacklist
24 from devil.android import device_errors 24 from devil.android import device_errors
25 from devil.android import device_utils 25 from devil.android import device_utils
26 from devil.utils import run_tests_helper 26 from devil.utils import run_tests_helper
27 from pylib import constants
27 28
28 _TZ_UTC = {'TZ': 'UTC'} 29 _TZ_UTC = {'TZ': 'UTC'}
29 30
30 def _ListTombstones(device): 31 def _ListTombstones(device):
31 """List the tombstone files on the device. 32 """List the tombstone files on the device.
32 33
33 Args: 34 Args:
34 device: An instance of DeviceUtils. 35 device: An instance of DeviceUtils.
35 36
36 Yields: 37 Yields:
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 help="""Resolve symbols for all tombstones, rather than just 231 help="""Resolve symbols for all tombstones, rather than just
231 the most recent""") 232 the most recent""")
232 parser.add_option('-s', '--stack', action='store_true', 233 parser.add_option('-s', '--stack', action='store_true',
233 help='Also include symbols for stack data') 234 help='Also include symbols for stack data')
234 parser.add_option('-w', '--wipe-tombstones', action='store_true', 235 parser.add_option('-w', '--wipe-tombstones', action='store_true',
235 help='Erase all tombstones from device after processing') 236 help='Erase all tombstones from device after processing')
236 parser.add_option('-j', '--jobs', type='int', 237 parser.add_option('-j', '--jobs', type='int',
237 default=4, 238 default=4,
238 help='Number of jobs to use when processing multiple ' 239 help='Number of jobs to use when processing multiple '
239 'crash stacks.') 240 'crash stacks.')
241 parser.add_option('--output-directory',
242 help='Path to the root build directory.')
240 options, _ = parser.parse_args() 243 options, _ = parser.parse_args()
241 244
242 devil_chromium.Initialize() 245 devil_chromium.Initialize()
243 246
244 blacklist = (device_blacklist.Blacklist(options.blacklist_file) 247 blacklist = (device_blacklist.Blacklist(options.blacklist_file)
245 if options.blacklist_file 248 if options.blacklist_file
246 else None) 249 else None)
247 250
251 if options.output_directory:
252 constants.SetOutputDirectory(options.output_directory)
253
248 if options.device: 254 if options.device:
249 devices = [device_utils.DeviceUtils(options.device)] 255 devices = [device_utils.DeviceUtils(options.device)]
250 else: 256 else:
251 devices = device_utils.DeviceUtils.HealthyDevices(blacklist) 257 devices = device_utils.DeviceUtils.HealthyDevices(blacklist)
252 258
253 # This must be done serially because strptime can hit a race condition if 259 # This must be done serially because strptime can hit a race condition if
254 # used for the first time in a multithreaded environment. 260 # used for the first time in a multithreaded environment.
255 # http://bugs.python.org/issue7980 261 # http://bugs.python.org/issue7980
256 tombstones = [] 262 tombstones = []
257 for device in devices: 263 for device in devices:
258 tombstones += _GetTombstonesForDevice(device, options) 264 tombstones += _GetTombstonesForDevice(device, options)
259 265
260 _ResolveTombstones(options.jobs, tombstones) 266 _ResolveTombstones(options.jobs, tombstones)
261 267
262 268
263 if __name__ == '__main__': 269 if __name__ == '__main__':
264 sys.exit(main()) 270 sys.exit(main())
OLDNEW
« no previous file with comments | « build/android/asan_symbolize.py ('k') | third_party/android_platform/README.chromium » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698