OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 function processArguments(args) { | 31 function processArguments(args) { |
32 var processor = new ArgumentsProcessor(args); | 32 var processor = new ArgumentsProcessor(args); |
33 if (processor.parse()) { | 33 if (processor.parse()) { |
34 return processor.result(); | 34 return processor.result(); |
35 } else { | 35 } else { |
36 processor.printUsageAndExit(); | 36 processor.printUsageAndExit(); |
37 } | 37 } |
38 } | 38 } |
39 | 39 |
| 40 function initSourceMapSupport() { |
| 41 // Pull dev tools source maps into our name space. |
| 42 SourceMap = WebInspector.SourceMap; |
| 43 |
| 44 // Overwrite the load function to load scripts synchronously. |
| 45 SourceMap.load = function(sourceMapURL) { |
| 46 var content = readFile(sourceMapURL); |
| 47 var sourceMapObject = (JSON.parse(content)); |
| 48 return new SourceMap(sourceMapURL, sourceMapObject); |
| 49 }; |
| 50 } |
| 51 |
40 var entriesProviders = { | 52 var entriesProviders = { |
41 'unix': UnixCppEntriesProvider, | 53 'unix': UnixCppEntriesProvider, |
42 'windows': WindowsCppEntriesProvider, | 54 'windows': WindowsCppEntriesProvider, |
43 'mac': MacCppEntriesProvider | 55 'mac': MacCppEntriesProvider |
44 }; | 56 }; |
45 | 57 |
46 var params = processArguments(arguments); | 58 var params = processArguments(arguments); |
| 59 var sourceMap = null; |
| 60 if (params.sourceMap) { |
| 61 initSourceMapSupport(); |
| 62 sourceMap = SourceMap.load(params.sourceMap); |
| 63 } |
47 var snapshotLogProcessor; | 64 var snapshotLogProcessor; |
48 if (params.snapshotLogFileName) { | 65 if (params.snapshotLogFileName) { |
49 snapshotLogProcessor = new SnapshotLogProcessor(); | 66 snapshotLogProcessor = new SnapshotLogProcessor(); |
50 snapshotLogProcessor.processLogFile(params.snapshotLogFileName); | 67 snapshotLogProcessor.processLogFile(params.snapshotLogFileName); |
51 } | 68 } |
52 var tickProcessor = new TickProcessor( | 69 var tickProcessor = new TickProcessor( |
53 new (entriesProviders[params.platform])(params.nm, params.targetRootFS), | 70 new (entriesProviders[params.platform])(params.nm, params.targetRootFS), |
54 params.separateIc, | 71 params.separateIc, |
55 params.callGraphSize, | 72 params.callGraphSize, |
56 params.ignoreUnknown, | 73 params.ignoreUnknown, |
57 params.stateFilter, | 74 params.stateFilter, |
58 snapshotLogProcessor, | 75 snapshotLogProcessor, |
59 params.distortion, | 76 params.distortion, |
60 params.range); | 77 params.range, |
| 78 sourceMap); |
61 tickProcessor.processLogFile(params.logFileName); | 79 tickProcessor.processLogFile(params.logFileName); |
62 tickProcessor.printStatistics(); | 80 tickProcessor.printStatistics(); |
OLD | NEW |