blob: 44527771e47b3a620939e10335d6c29e36de42f5 [file] [log] [blame]
Ben Murdoch61f157c2016-09-16 13:49:30 +01001// Copyright 2016 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Dump C++ symbols of shared library if possible
6
7function processArguments(args) {
8 var processor = new ArgumentsProcessor(args);
9 if (processor.parse()) {
10 return processor.result();
11 } else {
12 processor.printUsageAndExit();
13 }
14}
15
16function initSourceMapSupport() {
17 // Pull dev tools source maps into our name space.
18 SourceMap = WebInspector.SourceMap;
19
20 // Overwrite the load function to load scripts synchronously.
21 SourceMap.load = function(sourceMapURL) {
22 var content = readFile(sourceMapURL);
23 var sourceMapObject = (JSON.parse(content));
24 return new SourceMap(sourceMapURL, sourceMapObject);
25 };
26}
27
28var entriesProviders = {
29 'unix': UnixCppEntriesProvider,
30 'windows': WindowsCppEntriesProvider,
31 'mac': MacCppEntriesProvider
32};
33
34var params = processArguments(arguments);
35var sourceMap = null;
36if (params.sourceMap) {
37 initSourceMapSupport();
38 sourceMap = SourceMap.load(params.sourceMap);
39}
40
41var cppProcessor = new CppProcessor(
42 new (entriesProviders[params.platform])(params.nm, params.targetRootFS),
43 params.timedRange, params.pairwiseTimedRange);
44cppProcessor.processLogFile(params.logFileName);
45cppProcessor.dumpCppSymbols();