Exemplo n.º 1
0
TEST(Symbolizer, Single) {
  Symbolizer symbolizer;
  SymbolizedFrame a;
  ASSERT_TRUE(symbolizer.symbolize(reinterpret_cast<uintptr_t>(foo), a));
  EXPECT_EQ("folly::symbolizer::test::foo()", a.demangledName());

  auto path = a.location.file.toString();
  folly::StringPiece basename(path);
  auto pos = basename.rfind('/');
  if (pos != folly::StringPiece::npos) {
    basename.advance(pos + 1);
  }
  EXPECT_EQ("SymbolizerTest.cpp", basename.str());
}
Exemplo n.º 2
0
TEST(Symbolizer, Single) {
    Symbolizer symbolizer;
    SymbolizedFrame a;
    ASSERT_TRUE(symbolizer.symbolize(reinterpret_cast<uintptr_t>(foo), a));
    EXPECT_EQ("folly::symbolizer::test::foo()", a.demangledName());

    // The version of clang we use doesn't generate a `.debug_aranges` section,
    // which the symbolizer needs to lookup the filename.
    constexpr bool built_with_clang =
#ifdef __clang__
        true;
#else
        false;
#endif
    if (!built_with_clang) {
        auto path = a.location.file.toString();
        folly::StringPiece basename(path);
        auto pos = basename.rfind('/');
        if (pos != folly::StringPiece::npos) {
            basename.advance(pos + 1);
        }
        EXPECT_EQ("SymbolizerTest.cpp", basename.str());
    }
}