зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
03bb24b8ba
Коммит
16f0994a36
|
@ -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',
|
||||
|
|
Загрузка…
Ссылка в новой задаче