Reland "scripts: Add -d and -m parameters to dump_syms"
This reverts commit 68546b0fd96b3eb37531d3e675b0337f137e8f59.
Reason for revert: Build hang probably fixed in crrev.com/c/4544694.
Original change's description:
> Revert "scripts: Add -d and -m parameters to dump_syms"
>
> This reverts commit a89ee08c1d2f559621865238181551614b891c1b.
>
> Reason for revert: breakpad symbols time out, b/280290608
>
>
> Original change's description:
> > scripts: Add -d and -m parameters to dump_syms
> >
> > This dumps inline frames and ICF data which should generate better
> > server-side crash stacks.
> >
> > BUG=chromium:1410232
> > TEST=cros_generate_breakpad_symbols_unittest.py
> >
> > Change-Id: I711105ec9a189988c8972f4126c96e57cab8839b
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4288607
> > Reviewed-by: Ian Barkley-Yeung <iby@chromium.org>
> > Commit-Queue: Peter Boström <pbos@chromium.org>
> > Reviewed-by: Tim Bain <tbain@google.com>
> > Reviewed-by: Mike Frysinger <vapier@chromium.org>
> > Tested-by: Peter Boström <pbos@chromium.org>
>
> Bug: chromium:1410232, b:280290608
> Change-Id: I4895d2ec7babdbbd129b7a75a9fc806d2416113d
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4496484
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Raul Rangel <rrangel@chromium.org>
> Owners-Override: Raul Rangel <rrangel@chromium.org>
> Reviewed-by: Ian Barkley-Yeung <iby@chromium.org>
BUG=chromium:1410232, b/280290608
TEST=cros_generate_breakpad_symbols_unittest.py
Change-Id: I8e221dce60c5483833db83a3989c5f68a8b84234
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4566948
Commit-Queue: Peter Boström <pbos@chromium.org>
Tested-by: Peter Boström <pbos@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Ian Barkley-Yeung <iby@chromium.org>
diff --git a/scripts/cros_generate_breakpad_symbols_unittest.py b/scripts/cros_generate_breakpad_symbols_unittest.py
index cb49a40..810dada 100644
--- a/scripts/cros_generate_breakpad_symbols_unittest.py
+++ b/scripts/cros_generate_breakpad_symbols_unittest.py
@@ -428,6 +428,8 @@
class GenerateSymbolTest(cros_test_lib.RunCommandTempDirTestCase):
"""Test GenerateBreakpadSymbol."""
+ _DUMP_SYMS_BASE_CMD = ["dump_syms", "-v", "-d", "-m"]
+
def setUp(self):
self.elf_file = os.path.join(self.tempdir, "elf")
osutils.Touch(self.elf_file)
@@ -472,7 +474,7 @@
self.assertEqual(ret, self.sym_file)
self.assertEqual(self.rc.call_count, 2)
self.assertCommandArgs(
- 1, ["dump_syms", "-v", self.elf_file, self.debug_dir]
+ 1, self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir]
)
self.assertExists(self.sym_file)
@@ -488,7 +490,9 @@
)
self.assertEqual(ret, self.sym_file)
self.assertEqual(num_errors.value, 0)
- self.assertCommandArgs(1, ["dump_syms", "-v", "-c", self.elf_file])
+ self.assertCommandArgs(
+ 1, self._DUMP_SYMS_BASE_CMD + ["-c", self.elf_file]
+ )
self.assertEqual(self.rc.call_count, 2)
self.assertExists(self.sym_file)
@@ -498,7 +502,7 @@
self.elf_file, breakpad_dir=self.breakpad_dir
)
self.assertEqual(ret, self.sym_file)
- self.assertCommandArgs(1, ["dump_syms", "-v", self.elf_file])
+ self.assertCommandArgs(1, self._DUMP_SYMS_BASE_CMD + [self.elf_file])
self.assertEqual(self.rc.call_count, 2)
self.assertExists(self.sym_file)
@@ -511,13 +515,14 @@
)
self.assertEqual(ret, self.sym_file)
self.assertCommandArgs(
- 1, ["sudo", "--", "dump_syms", "-v", self.elf_file]
+ 1, ["sudo", "--"] + self._DUMP_SYMS_BASE_CMD + [self.elf_file]
)
def testLargeDebugFail(self):
"""Running w/large .debug failed, but retry worked"""
self.rc.AddCmdResult(
- ["dump_syms", "-v", self.elf_file, self.debug_dir], returncode=1
+ self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir],
+ returncode=1,
)
ret = cros_generate_breakpad_symbols.GenerateBreakpadSymbol(
self.elf_file, self.debug_file, self.breakpad_dir
@@ -525,16 +530,18 @@
self.assertEqual(ret, self.sym_file)
self.assertEqual(self.rc.call_count, 4)
self.assertCommandArgs(
- 1, ["dump_syms", "-v", self.elf_file, self.debug_dir]
+ 1, self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir]
)
# The current fallback from _DumpExpectingSymbols() to
- # _DumpAllowingBasicFallback() causes the first dump_sums command to get
+ # _DumpAllowingBasicFallback() causes the first dump_syms command to get
# repeated.
self.assertCommandArgs(
- 2, ["dump_syms", "-v", self.elf_file, self.debug_dir]
+ 2, self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir]
)
self.assertCommandArgs(
- 3, ["dump_syms", "-v", "-c", "-r", self.elf_file, self.debug_dir]
+ 3,
+ self._DUMP_SYMS_BASE_CMD
+ + ["-c", "-r", self.elf_file, self.debug_dir],
)
self.assertExists(self.sym_file)
@@ -544,7 +551,8 @@
Test force_basic_fallback goes straight to _DumpAllowingBasicFallback().
"""
self.rc.AddCmdResult(
- ["dump_syms", "-v", self.elf_file, self.debug_dir], returncode=1
+ self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir],
+ returncode=1,
)
ret = cros_generate_breakpad_symbols.GenerateBreakpadSymbol(
self.elf_file,
@@ -559,20 +567,24 @@
# _ExpectGoodSymbols() either, so there's 2 fewer commands than
# in testLargeDebugFail.
self.assertCommandArgs(
- 0, ["dump_syms", "-v", self.elf_file, self.debug_dir]
+ 0, self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir]
)
self.assertCommandArgs(
- 1, ["dump_syms", "-v", "-c", "-r", self.elf_file, self.debug_dir]
+ 1,
+ self._DUMP_SYMS_BASE_CMD
+ + ["-c", "-r", self.elf_file, self.debug_dir],
)
self.assertExists(self.sym_file)
def testDebugFail(self):
"""Running w/.debug always failed, but works w/out"""
self.rc.AddCmdResult(
- ["dump_syms", "-v", self.elf_file, self.debug_dir], returncode=1
+ self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir],
+ returncode=1,
)
self.rc.AddCmdResult(
- ["dump_syms", "-v", "-c", "-r", self.elf_file, self.debug_dir],
+ self._DUMP_SYMS_BASE_CMD
+ + ["-c", "-r", self.elf_file, self.debug_dir],
returncode=1,
)
ret = cros_generate_breakpad_symbols.GenerateBreakpadSymbol(
@@ -581,18 +593,20 @@
self.assertEqual(ret, self.sym_file)
self.assertEqual(self.rc.call_count, 5)
self.assertCommandArgs(
- 1, ["dump_syms", "-v", self.elf_file, self.debug_dir]
+ 1, self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir]
)
# The current fallback from _DumpExpectingSymbols() to
- # _DumpAllowingBasicFallback() causes the first dump_sums command to get
+ # _DumpAllowingBasicFallback() causes the first dump_syms command to get
# repeated.
self.assertCommandArgs(
- 2, ["dump_syms", "-v", self.elf_file, self.debug_dir]
+ 2, self._DUMP_SYMS_BASE_CMD + [self.elf_file, self.debug_dir]
)
self.assertCommandArgs(
- 3, ["dump_syms", "-v", "-c", "-r", self.elf_file, self.debug_dir]
+ 3,
+ self._DUMP_SYMS_BASE_CMD
+ + ["-c", "-r", self.elf_file, self.debug_dir],
)
- self.assertCommandArgs(4, ["dump_syms", "-v", self.elf_file])
+ self.assertCommandArgs(4, self._DUMP_SYMS_BASE_CMD + [self.elf_file])
self.assertExists(self.sym_file)
def testCompleteFail(self):
@@ -615,10 +629,11 @@
ko_file = os.path.join(self.tempdir, "elf.ko")
osutils.Touch(ko_file)
self.rc.AddCmdResult(
- ["dump_syms", "-v", ko_file, self.debug_dir], returncode=1
+ self._DUMP_SYMS_BASE_CMD + [ko_file, self.debug_dir],
+ returncode=1,
)
self.rc.AddCmdResult(
- ["dump_syms", "-v", "-c", "-r", ko_file, self.debug_dir],
+ self._DUMP_SYMS_BASE_CMD + ["-c", "-r", ko_file, self.debug_dir],
returncode=1,
)
ret = cros_generate_breakpad_symbols.GenerateBreakpadSymbol(
@@ -628,11 +643,14 @@
self.assertEqual(self.rc.call_count, 3)
# Only one call (at the beginning of _DumpAllowingBasicFallback())
# to "dump_syms -v"
- self.assertCommandArgs(0, ["dump_syms", "-v", ko_file, self.debug_dir])
self.assertCommandArgs(
- 1, ["dump_syms", "-v", "-c", "-r", ko_file, self.debug_dir]
+ 0, self._DUMP_SYMS_BASE_CMD + [ko_file, self.debug_dir]
)
- self.assertCommandArgs(2, ["dump_syms", "-v", ko_file])
+ self.assertCommandArgs(
+ 1,
+ self._DUMP_SYMS_BASE_CMD + ["-c", "-r", ko_file, self.debug_dir],
+ )
+ self.assertCommandArgs(2, self._DUMP_SYMS_BASE_CMD + [ko_file])
self.assertExists(self.sym_file)
def testGoBinary(self):
@@ -653,14 +671,15 @@
)
self.rc.AddCmdResult(["/usr/bin/file", go_binary], stdout=FILE_OUT_GO)
self.rc.AddCmdResult(
- ["dump_syms", "-v", go_binary, self.debug_dir], returncode=1
- )
- self.rc.AddCmdResult(
- ["dump_syms", "-v", "-c", "-r", go_binary, self.debug_dir],
+ self._DUMP_SYMS_BASE_CMD + [go_binary, self.debug_dir],
returncode=1,
)
self.rc.AddCmdResult(
- ["dump_syms", "-v", go_binary],
+ self._DUMP_SYMS_BASE_CMD + ["-c", "-r", go_binary, self.debug_dir],
+ returncode=1,
+ )
+ self.rc.AddCmdResult(
+ self._DUMP_SYMS_BASE_CMD + [go_binary],
returncode=1,
stderr=(
f"{go_binary}: file contains no debugging information "
@@ -677,12 +696,13 @@
# Only one call (at the beginning of _DumpAllowingBasicFallback())
# to "dump_syms -v"
self.assertCommandArgs(
- 1, ["dump_syms", "-v", go_binary, self.debug_dir]
+ 1, self._DUMP_SYMS_BASE_CMD + [go_binary, self.debug_dir]
)
self.assertCommandArgs(
- 2, ["dump_syms", "-v", "-c", "-r", go_binary, self.debug_dir]
+ 2,
+ self._DUMP_SYMS_BASE_CMD + ["-c", "-r", go_binary, self.debug_dir],
)
- self.assertCommandArgs(3, ["dump_syms", "-v", go_binary])
+ self.assertCommandArgs(3, self._DUMP_SYMS_BASE_CMD + [go_binary])
self.assertNotExists(self.sym_file)
self.assertEqual(num_errors.value, 0)
@@ -694,14 +714,14 @@
osutils.Touch(debug_file, makedirs=True)
self.rc.AddCmdResult(["/usr/bin/file", binary], stdout=self.FILE_OUT)
self.rc.AddCmdResult(
- ["dump_syms", "-v", binary, debug_dir], returncode=1
+ self._DUMP_SYMS_BASE_CMD + [binary, debug_dir], returncode=1
)
self.rc.AddCmdResult(
- ["dump_syms", "-v", "-c", "-r", binary, debug_dir],
+ self._DUMP_SYMS_BASE_CMD + ["-c", "-r", binary, debug_dir],
returncode=1,
)
self.rc.AddCmdResult(
- ["dump_syms", "-v", binary],
+ self._DUMP_SYMS_BASE_CMD + [binary],
returncode=1,
stderr=(
f"{binary}: file contains no debugging information "
@@ -717,11 +737,13 @@
self.assertCommandArgs(0, ["/usr/bin/file", binary])
# Only one call (at the beginning of _DumpAllowingBasicFallback())
# to "dump_syms -v"
- self.assertCommandArgs(1, ["dump_syms", "-v", binary, debug_dir])
self.assertCommandArgs(
- 2, ["dump_syms", "-v", "-c", "-r", binary, debug_dir]
+ 1, self._DUMP_SYMS_BASE_CMD + [binary, debug_dir]
)
- self.assertCommandArgs(3, ["dump_syms", "-v", binary])
+ self.assertCommandArgs(
+ 2, self._DUMP_SYMS_BASE_CMD + ["-c", "-r", binary, debug_dir]
+ )
+ self.assertCommandArgs(3, self._DUMP_SYMS_BASE_CMD + [binary])
self.assertNotExists(self.sym_file)
self.assertEqual(num_errors.value, 0)