summaryrefslogtreecommitdiffstats
path: root/base/debug_util_unittest.cc
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-14 03:01:44 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-14 03:01:44 +0000
commit79b6fa6123a8877eb25a600a01a8a0fd3de7560e (patch)
tree3e9d16818541dbbf8c0a40764549498d4a6d9913 /base/debug_util_unittest.cc
parent63596301ddb6f3f6192dce7e81cf5722312c1433 (diff)
downloadchromium_src-79b6fa6123a8877eb25a600a01a8a0fd3de7560e.zip
chromium_src-79b6fa6123a8877eb25a600a01a8a0fd3de7560e.tar.gz
chromium_src-79b6fa6123a8877eb25a600a01a8a0fd3de7560e.tar.bz2
Demangle C++ symbols in stack traces for Linux.
My first Chromium linux build greeted me with a backtrace of mangled symbols (FWIW, my /dev/shm permission was wrong). That made me write this patch. BEFORE: ../sconsbuild/Debug/base_unittests(_ZN10StackTraceC1Ev+0x20) [0x817795e] ../sconsbuild/Debug/base_unittests(_ZN30StackTrace_OutputToStream_Test8TestBodyEv+0x18) [0x805fc98] ../sconsbuild/Debug/base_unittests(_ZN7testing4Test3RunEv+0x7e) [0x82005ea] AFTER: ../sconsbuild/Debug/base_unittests(StackTrace::StackTrace()+0x20) [0x817778c] ../sconsbuild/Debug/base_unittests(StackTrace_OutputToStream_Test::TestBody()+0x18) [0x805fc98] ../sconsbuild/Debug/base_unittests(testing::Test::Run()+0x7e) [0x8200786] BUG=none TEST=manually tested. also ran base_unittests Review URL: http://codereview.chromium.org/267074 Patch from Satoru Takabayashi <satorux@gmail.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28940 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/debug_util_unittest.cc')
-rw-r--r--base/debug_util_unittest.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/base/debug_util_unittest.cc b/base/debug_util_unittest.cc
index 01551d0..b9300a4 100644
--- a/base/debug_util_unittest.cc
+++ b/base/debug_util_unittest.cc
@@ -49,7 +49,14 @@ TEST(StackTrace, OutputToStream) {
<< "Expected to find start in backtrace:\n"
<< backtrace_message;
-#else // defined(OS_MACOSX)
+#elif defined(__GLIBCXX__)
+
+ // Expect a demangled symbol.
+ EXPECT_TRUE(backtrace_message.find("testing::Test::Run()") !=
+ std::string::npos)
+ << "Expected a demangled symbol in backtrace:\n"
+ << backtrace_message;
+#else // defined(__GLIBCXX__)
// Expect to at least find main.
EXPECT_TRUE(backtrace_message.find("main") != std::string::npos)