@@ -168,8 +168,7 @@ class CommandObjectFrameDiagnose : public CommandObjectParsed {
168168 // We've already handled the case where the value object sp is null, so
169169 // this is just to make sure future changes don't skip that:
170170 assert (valobj_sp.get () && " Must have a valid ValueObject to print" );
171- ValueObjectPrinter printer (*valobj_sp, &result.GetOutputStream (),
172- options);
171+ ValueObjectPrinter printer (*valobj_sp, &result.GetOutputStream (), options);
173172 if (llvm::Error error = printer.PrintValueObject ())
174173 result.AppendError (toString (std::move (error)));
175174 }
@@ -899,13 +898,16 @@ void CommandObjectFrameRecognizerAdd::DoExecute(Args &command,
899898 auto func =
900899 RegularExpressionSP (new RegularExpression (m_options.m_symbols .front ()));
901900 GetTarget ().GetFrameRecognizerManager ().AddRecognizer (
902- recognizer_sp, module , func, m_options.m_first_instruction_only );
901+ recognizer_sp, module , func, Mangled::NamePreference::ePreferDemangled,
902+ m_options.m_first_instruction_only );
903903 } else {
904904 auto module = ConstString (m_options.m_module );
905905 std::vector<ConstString> symbols (m_options.m_symbols .begin (),
906906 m_options.m_symbols .end ());
907907 GetTarget ().GetFrameRecognizerManager ().AddRecognizer (
908- recognizer_sp, module , symbols, m_options.m_first_instruction_only );
908+ recognizer_sp, module , symbols,
909+ Mangled::NamePreference::ePreferDemangled,
910+ m_options.m_first_instruction_only );
909911 }
910912#endif
911913
@@ -927,6 +929,34 @@ class CommandObjectFrameRecognizerClear : public CommandObjectParsed {
927929 }
928930};
929931
932+ static void
933+ PrintRecognizerDetails (Stream &strm, const std::string &name,
934+ const std::string &module ,
935+ llvm::ArrayRef<lldb_private::ConstString> symbols,
936+ Mangled::NamePreference symbol_mangling, bool regexp) {
937+ strm << name << " , " ;
938+
939+ if (!module .empty ())
940+ strm << " module " << module << " , " ;
941+
942+ switch (symbol_mangling) {
943+ case Mangled::NamePreference ::ePreferMangled:
944+ strm << " mangled symbol " ;
945+ break ;
946+ case Mangled::NamePreference ::ePreferDemangled:
947+ strm << " demangled symbol " ;
948+ break ;
949+ case Mangled::NamePreference ::ePreferDemangledWithoutArguments:
950+ strm << " demangled (no args) symbol " ;
951+ break ;
952+ }
953+
954+ if (regexp)
955+ strm << " regex " ;
956+
957+ llvm::interleaveComma (symbols, strm);
958+ }
959+
930960class CommandObjectFrameRecognizerDelete : public CommandObjectParsed {
931961public:
932962 CommandObjectFrameRecognizerDelete (CommandInterpreter &interpreter)
@@ -947,19 +977,13 @@ class CommandObjectFrameRecognizerDelete : public CommandObjectParsed {
947977 GetTarget ().GetFrameRecognizerManager ().ForEach (
948978 [&request](uint32_t rid, std::string rname, std::string module ,
949979 llvm::ArrayRef<lldb_private::ConstString> symbols,
950- bool regexp) {
980+ Mangled::NamePreference symbol_mangling, bool regexp) {
951981 StreamString strm;
952982 if (rname.empty ())
953983 rname = " (internal)" ;
954984
955- strm << rname;
956- if (!module .empty ())
957- strm << " , module " << module ;
958- if (!symbols.empty ())
959- for (auto &symbol : symbols)
960- strm << " , symbol " << symbol;
961- if (regexp)
962- strm << " (regexp)" ;
985+ PrintRecognizerDetails (strm, rname, module , symbols, symbol_mangling,
986+ regexp);
963987
964988 request.TryCompleteCurrentArg (std::to_string (rid), strm.GetString ());
965989 });
@@ -1016,22 +1040,18 @@ class CommandObjectFrameRecognizerList : public CommandObjectParsed {
10161040 void DoExecute (Args &command, CommandReturnObject &result) override {
10171041 bool any_printed = false ;
10181042 GetTarget ().GetFrameRecognizerManager ().ForEach (
1019- [&result, &any_printed](
1020- uint32_t recognizer_id, std::string name, std::string module ,
1021- llvm::ArrayRef<ConstString> symbols, bool regexp) {
1043+ [&result,
1044+ &any_printed](uint32_t recognizer_id, std::string name,
1045+ std::string module , llvm::ArrayRef<ConstString> symbols,
1046+ Mangled::NamePreference symbol_mangling, bool regexp) {
10221047 Stream &stream = result.GetOutputStream ();
10231048
10241049 if (name.empty ())
10251050 name = " (internal)" ;
10261051
1027- stream << std::to_string (recognizer_id) << " : " << name;
1028- if (!module .empty ())
1029- stream << " , module " << module ;
1030- if (!symbols.empty ())
1031- for (auto &symbol : symbols)
1032- stream << " , symbol " << symbol;
1033- if (regexp)
1034- stream << " (regexp)" ;
1052+ stream << std::to_string (recognizer_id) << " : " ;
1053+ PrintRecognizerDetails (stream, name, module , symbols, symbol_mangling,
1054+ regexp);
10351055
10361056 stream.EOL ();
10371057 stream.Flush ();
0 commit comments