summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorglider@chromium.org <glider@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-12 11:44:27 +0000
committerglider@chromium.org <glider@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-12 11:44:27 +0000
commit165fad29acd06b872c5a757a4a626e033e01af1f (patch)
tree565069e75562b4f5c9b3b6cd04f59d786ae6d7db /tools
parentdd8deb70df0ac94eb5b508ebd534ab1f76a64443 (diff)
downloadchromium_src-165fad29acd06b872c5a757a4a626e033e01af1f.zip
chromium_src-165fad29acd06b872c5a757a4a626e033e01af1f.tar.gz
chromium_src-165fad29acd06b872c5a757a4a626e033e01af1f.tar.bz2
Use Popen.communicate() to pass the symbol names to c++filt for demangling.
Passing symbol names via the command line parameters is tricky and requires additional escaping. For example, it doesn't work with names starting with "-[". BUG=none R=timurrrr@chromium.org Review URL: https://codereview.chromium.org/110443004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240277 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rwxr-xr-xtools/valgrind/test_suppressions.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/tools/valgrind/test_suppressions.py b/tools/valgrind/test_suppressions.py
index 8a09fc7..d02d0c9 100755
--- a/tools/valgrind/test_suppressions.py
+++ b/tools/valgrind/test_suppressions.py
@@ -50,16 +50,15 @@ def ReadReportsFromFile(filename):
def Demangle(names):
""" Demangle a list of C++ symbols, return a list of human-readable symbols.
"""
+ # -n is not the default on Mac.
args = ['c++filt', '-n']
- args.extend(names)
pipe = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
- stdout, _ = pipe.communicate()
+ stdout, _ = pipe.communicate(input='\n'.join(names))
demangled = stdout.split("\n")
-
# Each line ends with a newline, so the final entry of the split output
# will always be ''.
- assert len(demangled) == len(names) + 1
- return demangled[:-1]
+ assert len(demangled) == len(names)
+ return demangled
def GetSymbolsFromReport(report):
"""Extract all symbols from a suppression report."""