Skip to content

Unable to demangle some functions #282

@RedBeard0531

Description

@RedBeard0531

The shortest I see is

_ZSt12__apply_implIZN5mongo20stacktrace_test_util25StackTraceSigAltStackTest10tryHandlerEPFviP9siginfo_tPvEEUlvE_St5tupleIJEETpTnmJEEDcOT_OT0_St16integer_sequenceImJXspT1_EEE

c++trace seems to choke on this well, but llvm-cxxtrace demangles to

decltype(auto) std::__apply_impl<mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'(), std::tuple<>>(mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'()&&, std::tuple<>&&, std::integer_sequence<unsigned long, ...>)

If it helps, it is this function from libstdc++'s <tuple> compiled with clang.

Here are a few more examples that failed to demangle. They all seem to involve lambda's but I don't know if that is why it is choking. Some functions with lambdas are correctly demangled.

> llvm-cxxfilt

_ZZN5mongo4stdx6threadC1IZNS_20stacktrace_test_util25StackTraceSigAltStackTest10tryHandlerEPFviP9siginfo_tPvEEUlvE_JETnNSt9enable_ifIXntsr3stdE9is_same_vIS1_NSt5decayIT_E4typeEEEiE4typeELi0EEESD_DpOT0_ENUlvE_clEv
mongo::stdx::thread::thread<mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'(), 0>(mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'())::'lambda'()::operator()()

_ZSt13__invoke_implIvZN5mongo4stdx6threadC1IZNS0_20stacktrace_test_util25StackTraceSigAltStackTest10tryHandlerEPFviP9siginfo_tPvEEUlvE_JETnNSt9enable_ifIXntsr3stdE9is_same_vIS2_NSt5decayIT_E4typeEEEiE4typeELi0EEESE_DpOT0_EUlvE_JEESE_St14__invoke_otherOT0_DpOT1_
mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'() std::__invoke_impl<void, mongo::stdx::thread::thread<mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'(), 0>(mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'())::'lambda'()>(std::__invoke_other, mongo::stdx::thread::thread<mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'(), 0>(mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'())::'lambda'()&&)

_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJZN5mongo4stdx6threadC1IZNS3_20stacktrace_test_util25StackTraceSigAltStackTest10tryHandlerEPFviP9siginfo_tPvEEUlvE_JETnNSt9enable_ifIXntsr3stdE9is_same_vIS5_NSt5decayIT_E4typeEEEiE4typeELi0EEESH_DpOT0_EUlvE_EEEEE6_M_runEv
std::thread::_State_impl<std::thread::_Invoker<std::tuple<mongo::stdx::thread::thread<mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'(), 0>(mongo::stacktrace_test_util::StackTraceSigAltStackTest::tryHandler(void (*)(int, siginfo_t*, void*))::'lambda'())::'lambda'()>>>::_M_run()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions