Bug 1337986 - Modify symbolstore.py to operate on dll/exe files. r=ted

This will be more convenient when we dump symbols from the compile tier.

MozReview-Commit-ID: Ltjq8ai5j0m

--HG--
extra : rebase_source : bcb059879b1dbadb2e84caa41247fd129629eb37
This commit is contained in:
Chris Manchester 2017-04-10 10:27:49 -07:00
Родитель 03bb24b8ba
Коммит 16f0994a36
2 изменённых файлов: 15 добавлений и 15 удалений

Просмотреть файл

@ -705,7 +705,7 @@ class Dumper:
self.output(sys.stdout, rel_path)
if self.srcsrv and vcs_root:
# add source server indexing to the pdb file
self.SourceServerIndexing(file, guid, sourceFileStream, vcs_root)
self.SourceServerIndexing(debug_file, guid, sourceFileStream, vcs_root)
# only copy debug the first time if we have multiple architectures
if self.copy_debug and arch_num == 0:
self.CopyDebug(file, debug_file, guid,
@ -731,13 +731,13 @@ class Dumper_Win32(Dumper):
fixedFilenameCaseCache = {}
def ShouldProcess(self, file):
"""This function will allow processing of pdb files that have dll
or exe files with the same base name next to them."""
"""This function will allow processing of exe or dll files that have pdb
files with the same base name next to them."""
if not Dumper.ShouldProcess(self, file):
return False
if file.endswith(".pdb"):
(path,ext) = os.path.splitext(file)
if os.path.isfile(path + ".exe") or os.path.isfile(path + ".dll"):
if file.endswith(".exe") or file.endswith(".dll"):
path, ext = os.path.splitext(file)
if os.path.isfile(path + ".pdb"):
return True
return False
@ -788,6 +788,7 @@ class Dumper_Win32(Dumper):
return result
def CopyDebug(self, file, debug_file, guid, code_file, code_id):
file = "%s.pdb" % os.path.splitext(file)[0]
def compress(path):
compressed_file = path[:-1] + '_'
# ignore makecab's output
@ -836,7 +837,6 @@ class Dumper_Win32(Dumper):
def SourceServerIndexing(self, debug_file, guid, sourceFileStream, vcs_root):
# Creates a .pdb.stream file in the mozilla\objdir to be used for source indexing
debug_file = os.path.abspath(debug_file)
streamFilename = debug_file + ".stream"
stream_output_path = os.path.abspath(streamFilename)
# Call SourceIndex to create the .stream file

Просмотреть файл

@ -31,19 +31,19 @@ def write_elf(filename):
def write_macho(filename):
open(filename, "wb").write(struct.pack("<I28x", 0xfeedface))
def write_pdb(filename):
def write_dll(filename):
open(filename, "w").write("aaa")
# write out a fake DLL too
open(os.path.splitext(filename)[0] + ".dll", "w").write("aaa")
# write out a fake PDB too
open(os.path.splitext(filename)[0] + ".pdb", "w").write("aaa")
def target_platform():
return buildconfig.substs['OS_TARGET']
writer = {'WINNT': write_pdb,
writer = {'WINNT': write_dll,
'Linux': write_elf,
'Sunos5': write_elf,
'Darwin': write_macho}[target_platform()]
extension = {'WINNT': ".pdb",
extension = {'WINNT': ".dll",
'Linux': ".so",
'Sunos5': ".so",
'Darwin': ".dylib"}[target_platform()]
@ -219,8 +219,8 @@ class TestCopyDebug(HelperMixin, unittest.TestCase):
"""
Test that CopyDebug copies binaries as well on Windows.
"""
test_file = os.path.join(self.test_dir, 'foo.pdb')
write_pdb(test_file)
test_file = os.path.join(self.test_dir, 'foo.dll')
write_dll(test_file)
code_file = 'foo.dll'
code_id = 'abc123'
self.stdouts.append(mock_dump_syms('X' * 33, 'foo.pdb',
@ -541,7 +541,7 @@ class TestFunctional(HelperMixin, unittest.TestCase):
self.target_bin = os.path.join(buildconfig.topobjdir,
'browser',
'app',
'firefox.pdb')
'firefox.exe')
else:
self.dump_syms = os.path.join(buildconfig.topobjdir,
'dist', 'host', 'bin',