diff options
author | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-26 06:26:26 +0000 |
---|---|---|
committer | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-26 06:26:26 +0000 |
commit | 48c27f7fac6bb5cf9cc995df8a68d4f6d4c10600 (patch) | |
tree | b9ca64d89896a6fa93e86ec0287fb8f9229b977c /base/base.gypi | |
parent | 7c4ea146bc033d89c1a0d527ae3d43b587a23cab (diff) | |
download | chromium_src-48c27f7fac6bb5cf9cc995df8a68d4f6d4c10600.zip chromium_src-48c27f7fac6bb5cf9cc995df8a68d4f6d4c10600.tar.gz chromium_src-48c27f7fac6bb5cf9cc995df8a68d4f6d4c10600.tar.bz2 |
Import google-glog's Symbolize() and use it in debug_util_posix.cc.
Unlike glibc's backtrace_symbols(), google-glog's Symbolize() can
resolve symbols in binaries built with -fvisibility=hidden. This is
because Symbolize() uses both dynamic and regular symbols, while
backtrace_symbols() only uses dynamic symbols.
As shown below, the new backtrace is slightly less informative as it
does not have the binary name like out/Debug/base_unittests and the
distance information like +0x20, but it should be ok.
BUG=32762
TEST=out/Debug/base_unittests --gtest_filter='StackTrace*' --gtest_also_run_disabled_tests; and manually:
BEFORE
out/Debug/base_unittests(StackTrace::StackTrace()+0x20) [0x81d38f6]
out/Debug/base_unittests(StackTrace_DISABLED_DebugOutputToStream_Test::TestBody()+0x17) [0x806633d]
out/Debug/base_unittests(testing::Test::Run()+0x7a) [0x8242f96]
out/Debug/base_unittests(testing::internal::TestInfoImpl::Run()+0xb9) [0x824347b]
out/Debug/base_unittests(testing::TestCase::Run()+0xb7) [0x8243a7f]
out/Debug/base_unittests(testing::internal::UnitTestImpl::RunAllTests()+0x256) [0x824777e]
out/Debug/base_unittests(testing::UnitTest::Run()+0x14) [0x824680a]
out/Debug/base_unittests [0x8048cc5]
out/Debug/base_unittests(main+0x50) [0x80482a4]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xb6b41b56]
out/Debug/base_unittests [0x80481c1]
AFTER
% out/Debug/base_unittests --gtest_filter='*DebugOutputToStream' --gtest_also_run_disabled_tests
StackTrace::StackTrace() [0x81d3910]
StackTrace_DISABLED_DebugOutputToStream_Test::TestBody() [0x806633d]
testing::Test::Run() [0x8242f66]
testing::internal::TestInfoImpl::Run() [0x824344b]
testing::TestCase::Run() [0x8243a4f]
testing::internal::UnitTestImpl::RunAllTests() [0x824774e]
testing::UnitTest::Run() [0x82467da]
TestSuite::Run() [0x8048cc5]
main [0x80482a4]
0xb6c0db56
0x80481c1
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=36997
Review URL: http://codereview.chromium.org/545148
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37090 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/base.gypi')
-rw-r--r-- | base/base.gypi | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/base/base.gypi b/base/base.gypi index 78d5f5b..3fe12ae 100644 --- a/base/base.gypi +++ b/base/base.gypi @@ -394,6 +394,10 @@ '../build/util/build_util.gyp:lastchange', '../build/linux/system.gyp:gtk', '../build/linux/system.gyp:nss', + 'symbolize' + ], + 'defines': [ + 'USE_SYMBOLIZE', ], 'cflags': [ '-Wno-write-strings', @@ -602,5 +606,20 @@ }, ], }], + [ 'OS == "linux" or OS == "freebsd"', { + 'targets': [ + { + 'target_name': 'symbolize', + 'type': '<(library)', + 'cflags': [ + '-Wno-sign-compare', + ], + 'sources': [ + 'third_party/symbolize/symbolize.cc', + 'third_party/symbolize/demangle.cc', + ], + }, + ], + }], ], } |