私はデバッグ/メモリツールに取り組んでいます。C++ からのシンボルを表示したいのですが、問題は非常に冗長なことです。現時点では を使用して__cxa_demangle
いますが、デフォルトのテンプレート パラメータが含まれているため、500 文字を超える巨大な文字列になることがよくあります。
clang++
シンボルを報告するときに明らかに賢いことを行うことができます。それを利用する方法はありますか?
簡単な例として、次のように考えてみましょう。
std::map<std::string const, unsigned int, std::less<std::string const>, std::allocator<std::pair<std::string const, unsigned int> > >::find(std::string const&)
これは明らかに次のように報告できます。
std::map<std::string const, unsigned int>::find(std::string const&)
..十分に賢いツールがあれば。一般に、追加の知識がなければこれを行うのが難しいことは明らかです (元々使用されていたインクルードのように、これらを理解できる可能性があります)。
これまで私はlibcxxabiを指摘されてきましたが、解析ツリーへのパブリック インターフェイスがないこと (それ自体で私を止めることはありません) を除けば、どのパラメーターがデフォルトであるかを判断するのに大変な作業をしなければならないようです。 . どういうわけか、clang をだましてこれを実行させることができれば素晴らしいことです。