blob: b512b4b3bf36533898810e41d7847ecb81d50748 [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import argparse
import requests
import sys
_MOJO_DEBUGGER_PORT = 7777
def _send_request(request):
url = 'http://localhost:%s/%s' % (_MOJO_DEBUGGER_PORT, request)
return requests.get(url)
def start_tracing_command(args):
_send_request('start_tracing')
print "Started tracing."
def stop_tracing_command(args):
file_name = args.file_name
trace = _send_request('stop_tracing').content
with open(file_name, "wb") as trace_file:
trace_file.write('{"traceEvents":[')
trace_file.write(trace)
trace_file.write(']}')
print "Trace saved in %s" % file_name
def main():
parser = argparse.ArgumentParser(description='Command-line interface for '
'mojo:debugger')
subparsers = parser.add_subparsers(help='sub-command help')
start_tracing_parser = subparsers.add_parser('start_tracing',
help='starts tracing')
start_tracing_parser.set_defaults(func=start_tracing_command)
stop_tracing_parser = subparsers.add_parser('stop_tracing',
help='stops tracing')
stop_tracing_parser.add_argument('file_name', type=str, default='mojo.trace')
stop_tracing_parser.set_defaults(func=stop_tracing_command)
args = parser.parse_args()
args.func(args)
return 0
if __name__ == '__main__':
sys.exit(main())