| Index: systrace/systrace/run_systrace.py
|
| diff --git a/systrace/systrace/run_systrace.py b/systrace/systrace/run_systrace.py
|
| index a5219b1cc4177c0b4c568191e8f1cd8824fd4842..6c305566adf53b15279ccc069fcb4c7b698404ec 100755
|
| --- a/systrace/systrace/run_systrace.py
|
| +++ b/systrace/systrace/run_systrace.py
|
| @@ -42,8 +42,14 @@ from devil import devil_env
|
| from systrace import systrace_runner
|
| from systrace import util
|
| from systrace.tracing_agents import atrace_agent
|
| +from systrace.tracing_agents import atrace_from_file_agent
|
| +from systrace.tracing_agents import battor_trace_agent
|
| from systrace.tracing_agents import ftrace_agent
|
|
|
| +ALL_MODULES = [atrace_agent, atrace_from_file_agent,
|
| + battor_trace_agent, ftrace_agent]
|
| +
|
| +
|
| def parse_options(argv):
|
| """Parses and checks the command-line options.
|
|
|
| @@ -58,69 +64,31 @@ def parse_options(argv):
|
| default=None, metavar='FILE')
|
| parser.add_option('-t', '--time', dest='trace_time', type='int',
|
| help='trace for N seconds', metavar='N')
|
| - parser.add_option('-b', '--buf-size', dest='trace_buf_size', type='int',
|
| - help='use a trace buffer size of N KB', metavar='N')
|
| - parser.add_option('-k', '--ktrace', dest='kfuncs', action='store',
|
| - help='specify a comma-separated list of kernel functions '
|
| - 'to trace')
|
| parser.add_option('-l', '--list-categories', dest='list_categories',
|
| default=False, action='store_true',
|
| help='list the available categories and exit')
|
| parser.add_option('-j', '--json', dest='write_json',
|
| default=False, action='store_true',
|
| help='write a JSON file')
|
| - parser.add_option('-a', '--app', dest='app_name', default=None, type='string',
|
| - action='store',
|
| - help='enable application-level tracing for comma-separated '
|
| - 'list of app cmdlines')
|
| - parser.add_option('--no-fix-threads', dest='fix_threads', default=True,
|
| - action='store_false',
|
| - help='don\'t fix missing or truncated thread names')
|
| - parser.add_option('--no-fix-tgids', dest='fix_tgids', default=True,
|
| - action='store_false',
|
| - help='Do not run extra commands to restore missing thread '
|
| - 'to thread group id mappings.')
|
| - parser.add_option('--no-fix-circular', dest='fix_circular', default=True,
|
| - action='store_false',
|
| - help='don\'t fix truncated circular traces')
|
| - parser.add_option('--no-compress', dest='compress_trace_data',
|
| - default=True, action='store_false',
|
| - help='Tell the device not to send the trace data in '
|
| - 'compressed form.')
|
| - parser.add_option('--hubs', dest='hub_types', default='plugable_7port',
|
| - help='List of hub types to check for for BattOr mapping. '
|
| - 'Used when updating mapping file.')
|
| - parser.add_option('--serial-map', dest='serial_map',
|
| - default='serial_map.json',
|
| - help='File containing pregenerated map of phone serial '
|
| - 'numbers to BattOr serial numbers.')
|
| - parser.add_option('--battor_path', dest='battor_path', default=None,
|
| - type='string', help='specify a BattOr path to use')
|
| - parser.add_option('--update-map', dest='update_map', default=False,
|
| - action='store_true',
|
| - help='force update of phone-to-BattOr map')
|
| parser.add_option('--link-assets', dest='link_assets', default=False,
|
| action='store_true',
|
| help='(deprecated)')
|
| - parser.add_option('--boot', dest='boot', default=False, action='store_true',
|
| - help='reboot the device with tracing during boot enabled. '
|
| - 'The report is created by hitting Ctrl+C after the device '
|
| - 'has booted up.')
|
| - parser.add_option('--battor', dest='battor', default=False,
|
| - action='store_true', help='Use the BattOr tracing agent.')
|
| - parser.add_option('--from-file', dest='from_file', action='store',
|
| - help='read the trace from a file (compressed) rather than '
|
| - 'running a live trace')
|
| parser.add_option('--asset-dir', dest='asset_dir', default='trace-viewer',
|
| type='string', help='(deprecated)')
|
| - parser.add_option('-e', '--serial', dest='device_serial_number',
|
| - type='string', help='adb device serial number')
|
| - parser.add_option('--target', dest='target', default='android', type='string',
|
| - help='chose tracing target (android or linux)')
|
| parser.add_option('--timeout', dest='timeout', type='int',
|
| help='timeout for start and stop tracing (seconds)')
|
| parser.add_option('--collection-timeout', dest='collection_timeout',
|
| type='int', help='timeout for data collection (seconds)')
|
| + parser.add_option('-e', '--serial', dest='device_serial_number',
|
| + type='string', help='adb device serial number')
|
| + parser.add_option('--target', dest='target', default='android', type='string',
|
| + help='chose tracing target (android or linux)')
|
| +
|
| + # Add the other agent parsing options to the parser. For Systrace on the
|
| + # command line, all agents are added. For Android, only the compatible agents
|
| + # will be added.
|
| + for module in ALL_MODULES:
|
| + parser.add_option_group(module.add_options(parser))
|
|
|
| options, categories = parser.parse_args(argv[1:])
|
|
|
| @@ -160,6 +128,10 @@ def main():
|
| # Parse the command line options.
|
| options, categories = parse_options(sys.argv)
|
|
|
| + # Override --atrace flag if command-line categories are provided.
|
| + if categories:
|
| + options.atrace_categories = categories
|
| +
|
| initialize_devil()
|
|
|
| if options.target == 'android' and not options.device_serial_number:
|
| @@ -182,7 +154,7 @@ def main():
|
| # Set up the systrace runner and start tracing.
|
| script_dir = os.path.dirname(os.path.abspath(__file__))
|
| controller = systrace_runner.SystraceRunner(
|
| - script_dir, options, categories)
|
| + script_dir, options)
|
| controller.StartTracing()
|
|
|
| # Wait for the given number of seconds or until the user presses enter.
|
|
|