summaryrefslogtreecommitdiff
path: root/deps/v8/build/fuchsia/symbolizer.py
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-08-07 22:45:47 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-08-07 22:45:47 +0200
commit65e39b7046a29aa299f06285441b62bcf1e4df01 (patch)
tree2eb012aabb59533b954aa169199733292de336cf /deps/v8/build/fuchsia/symbolizer.py
parent936cd90b7def6ef7c1e0b80265a9dc77a9ad23c6 (diff)
downloadandroid-node-v8-65e39b7046a29aa299f06285441b62bcf1e4df01.tar.gz
android-node-v8-65e39b7046a29aa299f06285441b62bcf1e4df01.tar.bz2
android-node-v8-65e39b7046a29aa299f06285441b62bcf1e4df01.zip
Move v8/build into this repository.
Since we need to patch some files, we don't let depot_tools manage these files anymore. build.git commit a0b2e3b2708bcf81ec00ac1738b586bcc5e04eea
Diffstat (limited to 'deps/v8/build/fuchsia/symbolizer.py')
-rw-r--r--deps/v8/build/fuchsia/symbolizer.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/deps/v8/build/fuchsia/symbolizer.py b/deps/v8/build/fuchsia/symbolizer.py
new file mode 100644
index 0000000000..0b7c39e918
--- /dev/null
+++ b/deps/v8/build/fuchsia/symbolizer.py
@@ -0,0 +1,43 @@
+# Copyright 2018 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 logging
+import os
+import subprocess
+
+from common import SDK_ROOT
+
+
+def SymbolizerFilter(input_fd, build_ids_files):
+ """Symbolizes an output stream from a process.
+
+ input_fd: A file descriptor of the stream to be symbolized.
+ build_ids_file: Path to the ids.txt file which maps build IDs to
+ unstripped binaries on the filesystem.
+ Returns a generator that yields symbolized process output."""
+
+ llvm_symbolizer_path = os.path.join(SDK_ROOT, os.pardir, os.pardir,
+ 'llvm-build', 'Release+Asserts', 'bin',
+ 'llvm-symbolizer')
+ symbolizer = os.path.join(SDK_ROOT, 'tools', 'symbolize')
+ symbolizer_cmd = [symbolizer,
+ '-ids-rel', '-llvm-symbolizer', llvm_symbolizer_path,
+ '-build-id-dir', os.path.join(SDK_ROOT, '.build-id')]
+ for build_ids_file in build_ids_files:
+ symbolizer_cmd.extend(['-ids', build_ids_file])
+
+ logging.info('Running "%s".' % ' '.join(symbolizer_cmd))
+ symbolizer_proc = subprocess.Popen(
+ symbolizer_cmd,
+ stdout=subprocess.PIPE,
+ stdin=input_fd,
+ close_fds=True)
+
+ while True:
+ line = symbolizer_proc.stdout.readline()
+ if not line:
+ break
+ yield line
+
+ symbolizer_proc.wait()