201c50951d
On Android we load the native library directly from the APK. As such, we need to convert symbols from the mapped APK to the underlying .so when symbolizing the ticks. This CL adds a --apk-embedded-library argument to tick processor to enable specifying which unstripped library file was embeded in the APK and enable symbolizing. Change-Id: Ic992825b831f984a1217eed71847bdb158eb992b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627546 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61902}
47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
// Copyright 2016 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Dump C++ symbols of shared library if possible
|
|
|
|
function processArguments(args) {
|
|
var processor = new ArgumentsProcessor(args);
|
|
if (processor.parse()) {
|
|
return processor.result();
|
|
} else {
|
|
processor.printUsageAndExit();
|
|
}
|
|
}
|
|
|
|
function initSourceMapSupport() {
|
|
// Pull dev tools source maps into our name space.
|
|
SourceMap = WebInspector.SourceMap;
|
|
|
|
// Overwrite the load function to load scripts synchronously.
|
|
SourceMap.load = function(sourceMapURL) {
|
|
var content = readFile(sourceMapURL);
|
|
var sourceMapObject = (JSON.parse(content));
|
|
return new SourceMap(sourceMapURL, sourceMapObject);
|
|
};
|
|
}
|
|
|
|
var entriesProviders = {
|
|
'unix': UnixCppEntriesProvider,
|
|
'windows': WindowsCppEntriesProvider,
|
|
'mac': MacCppEntriesProvider
|
|
};
|
|
|
|
var params = processArguments(arguments);
|
|
var sourceMap = null;
|
|
if (params.sourceMap) {
|
|
initSourceMapSupport();
|
|
sourceMap = SourceMap.load(params.sourceMap);
|
|
}
|
|
|
|
var cppProcessor = new CppProcessor(
|
|
new (entriesProviders[params.platform])(params.nm, params.targetRootFS,
|
|
params.apkEmbeddedLibrary),
|
|
params.timedRange, params.pairwiseTimedRange);
|
|
cppProcessor.processLogFile(params.logFileName);
|
|
cppProcessor.dumpCppSymbols();
|