Commit a1f3134a authored by Kevin Marshall's avatar Kevin Marshall Committed by Commit Bot

[Fuchsia] Fix ids.txt data format, enable symbolization of SDK libraries.

The ids.txt file was being created without newlines between entries,
preventing it from being read correctly.

Also enable symbolization for binaries provided in the SDK, now that the
symbolizer supports multiple sources of symbols.


Bug: 772252
Change-Id: I2c0e179d09a26248f5d0c17c61bda7b2ccd05ee6
Reviewed-on: https://chromium-review.googlesource.com/c/1488576Reviewed-by: default avatarWez <wez@chromium.org>
Reviewed-by: default avatarSergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Kevin Marshall <kmarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#635840}
parent 01f313e6
...@@ -96,9 +96,14 @@ def _WriteBuildIdsTxt(binary_paths, ids_txt_path): ...@@ -96,9 +96,14 @@ def _WriteBuildIdsTxt(binary_paths, ids_txt_path):
assert binary_shortname in unprocessed_binary_paths assert binary_shortname in unprocessed_binary_paths
elif line.startswith(READELF_BUILD_ID_PREFIX): elif line.startswith(READELF_BUILD_ID_PREFIX):
# Paths to the unstripped executables listed in "ids.txt" are specified
# as relative paths to that file.
unstripped_rel_path = os.path.relpath(
os.path.abspath(unprocessed_binary_paths[binary_shortname]),
os.path.dirname(os.path.abspath(ids_txt_path)))
build_id = line[len(READELF_BUILD_ID_PREFIX):] build_id = line[len(READELF_BUILD_ID_PREFIX):]
ids_file.write(build_id + ' ' + ids_file.write(build_id + ' ' + unstripped_rel_path + '\n')
unprocessed_binary_paths[binary_shortname])
del unprocessed_binary_paths[binary_shortname] del unprocessed_binary_paths[binary_shortname]
# Did readelf forget anything? Make sure that all binaries are accounted for. # Did readelf forget anything? Make sure that all binaries are accounted for.
......
...@@ -22,7 +22,8 @@ def SymbolizerFilter(input_fd, build_ids_file): ...@@ -22,7 +22,8 @@ def SymbolizerFilter(input_fd, build_ids_file):
'llvm-symbolizer') 'llvm-symbolizer')
symbolizer = os.path.join(SDK_ROOT, 'tools', 'symbolize') symbolizer = os.path.join(SDK_ROOT, 'tools', 'symbolize')
symbolizer_cmd = [symbolizer, '-ids', build_ids_file, symbolizer_cmd = [symbolizer, '-ids', build_ids_file,
'-ids-rel', '-llvm-symbolizer', llvm_symbolizer_path] '-ids-rel', '-llvm-symbolizer', llvm_symbolizer_path,
'-build-id-dir', os.path.join(SDK_ROOT, '.build-id')]
logging.info('Running "%s".' % ' '.join(symbolizer_cmd)) logging.info('Running "%s".' % ' '.join(symbolizer_cmd))
symbolizer_proc = subprocess.Popen( symbolizer_proc = subprocess.Popen(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment