Move "catch exec" to a new file
[binutils-gdb.git] / gdb / objc-lang.c
index 1d440128a3d255ae1d3ea3cf5e1efa843afdbff2..72470144abf2602d343c344093f50ecce99726a2 100644 (file)
@@ -1,6 +1,6 @@
 /* Objective-C language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2022 Free Software Foundation, Inc.
 
    Contributed by Apple Computer, Inc.
    Written by Michael Snyder.
@@ -37,7 +37,7 @@
 #include "gdbcore.h"
 #include "gdbcmd.h"
 #include "frame.h"
-#include "gdb_regex.h"
+#include "gdbsupport/gdb_regex.h"
 #include "regcache.h"
 #include "block.h"
 #include "infcall.h"
@@ -251,8 +251,9 @@ public:
   }
 
   /* See language.h.  */
-  bool sniff_from_mangled_name (const char *mangled,
-                               char **demangled) const override
+  bool sniff_from_mangled_name
+       (const char *mangled, gdb::unique_xmalloc_ptr<char> *demangled)
+       const override
   {
     *demangled = demangle_symbol (mangled, 0);
     return *demangled != NULL;
@@ -260,7 +261,8 @@ public:
 
   /* See language.h.  */
 
-  char *demangle_symbol (const char *mangled, int options) const override;
+  gdb::unique_xmalloc_ptr<char> demangle_symbol (const char *mangled,
+                                                int options) const override;
 
   /* See language.h.  */
 
@@ -318,7 +320,7 @@ public:
 
 /* See declaration of objc_language::demangle_symbol above.  */
 
-char *
+gdb::unique_xmalloc_ptr<char>
 objc_language::demangle_symbol (const char *mangled, int options) const
 {
   char *demangled, *cp;
@@ -376,7 +378,7 @@ objc_language::demangle_symbol (const char *mangled, int options) const
 
       *cp++ = ']';             /* closing right brace */
       *cp++ = 0;               /* string terminator */
-      return demangled;
+      return gdb::unique_xmalloc_ptr<char> (demangled);
     }
   else
     return nullptr;    /* Not an objc mangled name.  */
@@ -1319,9 +1321,10 @@ _initialize_objc_language ()
            _("All Objective-C selectors, or those matching REGEXP."));
   add_info ("classes", info_classes_command,
            _("All Objective-C classes, or those matching REGEXP."));
-  add_com ("print-object", class_vars, print_object_command, 
-          _("Ask an Objective-C object to print itself."));
-  add_com_alias ("po", "print-object", class_vars, 1);
+  cmd_list_element *print_object_cmd
+    = add_com ("print-object", class_vars, print_object_command,
+              _("Ask an Objective-C object to print itself."));
+  add_com_alias ("po", print_object_cmd, class_vars, 1);
 }
 
 static void