gdb: fix python/lib/gdb/__init__.py formatting
[deliverable/binutils-gdb.git] / gdb / darwin-nat-info.c
index c15c2fd574d8ab8c75a6c087fe17f75cd32c9c63..5852e9bf01404b1a5e1cbf7c31c6b254c8d5449b 100644 (file)
@@ -1,5 +1,5 @@
 /* Darwin support for GDB, the GNU debugger.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2021 Free Software Foundation, Inc.
 
    Contributed by Apple Computer, Inc.
 
@@ -34,6 +34,7 @@
 #include "value.h"
 #include "gdbcmd.h"
 #include "inferior.h"
+#include "gdbarch.h"
 
 #include <sys/sysctl.h>
 
@@ -66,7 +67,7 @@
 #define port_type_array_t mach_port_array_t
 
 static void
-info_mach_tasks_command (char *args, int from_tty)
+info_mach_tasks_command (const char *args, int from_tty)
 {
   int sysControl[4];
   int count, index;
@@ -89,36 +90,39 @@ info_mach_tasks_command (char *args, int from_tty)
       mach_port_t taskPort;
 
       result =
-        task_by_unix_pid (mach_task_self (), procInfo[index].kp_proc.p_pid,
-                          &taskPort);
+       task_by_unix_pid (mach_task_self (), procInfo[index].kp_proc.p_pid,
+                         &taskPort);
       if (KERN_SUCCESS == result)
-        {
-          printf_unfiltered (_("    %s is %d has task %#x\n"),
-                             procInfo[index].kp_proc.p_comm,
-                             procInfo[index].kp_proc.p_pid, taskPort);
-        }
+       {
+         printf_unfiltered (_("    %s is %d has task %#x\n"),
+                            procInfo[index].kp_proc.p_comm,
+                            procInfo[index].kp_proc.p_pid, taskPort);
+       }
       else
-        {
-          printf_unfiltered (_("    %s is %d unknown task port\n"),
-                             procInfo[index].kp_proc.p_comm,
-                             procInfo[index].kp_proc.p_pid);
-        }
+       {
+         printf_unfiltered (_("    %s is %d unknown task port\n"),
+                            procInfo[index].kp_proc.p_comm,
+                            procInfo[index].kp_proc.p_pid);
+       }
     }
 
   xfree (procInfo);
 }
 
 static task_t
-get_task_from_args (char *args)
+get_task_from_args (const char *args)
 {
   task_t task;
   char *eptr;
 
   if (args == NULL || *args == 0)
     {
-      if (ptid_equal (inferior_ptid, null_ptid))
+      if (inferior_ptid == null_ptid)
        printf_unfiltered (_("No inferior running\n"));
-      return current_inferior ()->priv->task;
+
+      darwin_inferior *priv = get_darwin_inferior (current_inferior ());
+
+      return priv->task;
     }
   if (strcmp (args, "gdb") == 0)
     return mach_task_self ();
@@ -132,7 +136,7 @@ get_task_from_args (char *args)
 }
 
 static void
-info_mach_task_command (char *args, int from_tty)
+info_mach_task_command (const char *args, int from_tty)
 {
   union
   {
@@ -152,8 +156,8 @@ info_mach_task_command (char *args, int from_tty)
   printf_unfiltered (_("TASK_BASIC_INFO for 0x%x:\n"), task);
   info_count = TASK_BASIC_INFO_COUNT;
   result = task_info (task,
-                      TASK_BASIC_INFO,
-                      (task_info_t) & task_info_data.basic, &info_count);
+                     TASK_BASIC_INFO,
+                     (task_info_t) & task_info_data.basic, &info_count);
   MACH_CHECK_ERROR (result);
 
   PRINT_FIELD (&task_info_data.basic, suspend_count);
@@ -164,8 +168,8 @@ info_mach_task_command (char *args, int from_tty)
   printf_unfiltered (_("\nTASK_EVENTS_INFO:\n"));
   info_count = TASK_EVENTS_INFO_COUNT;
   result = task_info (task,
-                      TASK_EVENTS_INFO,
-                      (task_info_t) & task_info_data.events, &info_count);
+                     TASK_EVENTS_INFO,
+                     (task_info_t) & task_info_data.events, &info_count);
   MACH_CHECK_ERROR (result);
 
   PRINT_FIELD (&task_info_data.events, faults);
@@ -180,16 +184,16 @@ info_mach_task_command (char *args, int from_tty)
   printf_unfiltered (_("\nTASK_THREAD_TIMES_INFO:\n"));
   info_count = TASK_THREAD_TIMES_INFO_COUNT;
   result = task_info (task,
-                      TASK_THREAD_TIMES_INFO,
-                      (task_info_t) & task_info_data.thread_times,
-                      &info_count);
+                     TASK_THREAD_TIMES_INFO,
+                     (task_info_t) & task_info_data.thread_times,
+                     &info_count);
   MACH_CHECK_ERROR (result);
   PRINT_TV_FIELD (&task_info_data.thread_times, user_time);
   PRINT_TV_FIELD (&task_info_data.thread_times, system_time);
 }
 
 static void
-info_mach_ports_command (char *args, int from_tty)
+info_mach_ports_command (const char *args, int from_tty)
 {
   port_name_array_t names;
   port_type_array_t types;
@@ -254,39 +258,34 @@ info_mach_ports_command (char *args, int from_tty)
            printf_unfiltered (_(" gdb-exception"));
          else if (port == darwin_port_set)
            printf_unfiltered (_(" gdb-port_set"));
-         else if (!ptid_equal (inferior_ptid, null_ptid))
+         else if (inferior_ptid != null_ptid)
            {
              struct inferior *inf = current_inferior ();
+             darwin_inferior *priv = get_darwin_inferior (inf);
 
-             if (port == inf->priv->task)
+             if (port == priv->task)
                printf_unfiltered (_(" inferior-task"));
-             else if (port == inf->priv->notify_port)
+             else if (port == priv->notify_port)
                printf_unfiltered (_(" inferior-notify"));
              else
                {
-                 int k;
-                 darwin_thread_t *t;
-
-                 for (k = 0; k < inf->priv->exception_info.count; k++)
-                   if (port == inf->priv->exception_info.ports[k])
+                 for (int k = 0; k < priv->exception_info.count; k++)
+                   if (port == priv->exception_info.ports[k])
                      {
                        printf_unfiltered (_(" inferior-excp-port"));
                        break;
                      }
 
-                 if (inf->priv->threads)
+                 for (darwin_thread_t *t : priv->threads)
                    {
-                     for (k = 0;
-                          VEC_iterate(darwin_thread_t,
-                                      inf->priv->threads, k, t);
-                          k++)
-                       if (port == t->gdb_port)
-                         {
-                           printf_unfiltered (_(" inferior-thread for 0x%x"),
-                                              inf->priv->task);
-                           break;
-                         }
+                     if (port == t->gdb_port)
+                       {
+                         printf_unfiltered (_(" inferior-thread for 0x%x"),
+                                            priv->task);
+                         break;
+                       }
                    }
+
                }
            }
        }
@@ -294,9 +293,9 @@ info_mach_ports_command (char *args, int from_tty)
     }
 
   vm_deallocate (task_self (), (vm_address_t) names,
-                 (name_count * sizeof (mach_port_t)));
+                (name_count * sizeof (mach_port_t)));
   vm_deallocate (task_self (), (vm_address_t) types,
-                 (type_count * sizeof (mach_port_type_t)));
+                (type_count * sizeof (mach_port_type_t)));
 }
 
 
@@ -312,7 +311,7 @@ darwin_debug_port_info (task_t task, mach_port_t port)
   MACH_CHECK_ERROR (kret);
 
   printf_unfiltered (_("Port 0x%lx in task 0x%lx:\n"), (unsigned long) port,
-                     (unsigned long) task);
+                    (unsigned long) task);
   printf_unfiltered (_("  port set: 0x%x\n"), status.mps_pset);
   printf_unfiltered (_("     seqno: 0x%x\n"), status.mps_seqno);
   printf_unfiltered (_("   mscount: 0x%x\n"), status.mps_mscount);
@@ -326,7 +325,7 @@ darwin_debug_port_info (task_t task, mach_port_t port)
 }
 
 static void
-info_mach_port_command (char *args, int from_tty)
+info_mach_port_command (const char *args, int from_tty)
 {
   task_t task;
   mach_port_t port;
@@ -338,7 +337,7 @@ info_mach_port_command (char *args, int from_tty)
 }
 
 static void
-info_mach_threads_command (char *args, int from_tty)
+info_mach_threads_command (const char *args, int from_tty)
 {
   thread_array_t threads;
   unsigned int thread_count;
@@ -361,11 +360,11 @@ info_mach_threads_command (char *args, int from_tty)
     }
 
   vm_deallocate (task_self (), (vm_address_t) threads,
-                 (thread_count * sizeof (thread_t)));
+                (thread_count * sizeof (thread_t)));
 }
 
 static void
-info_mach_thread_command (char *args, int from_tty)
+info_mach_thread_command (const char *args, int from_tty)
 {
   union
   {
@@ -544,83 +543,80 @@ darwin_debug_regions (task_t task, mach_vm_address_t address, int max)
 
       /* Check to see if address space has wrapped around.  */
       if (address == 0)
-        print = done = 1;
+       print = done = 1;
 
       if (!done)
-        {
-          count = VM_REGION_BASIC_INFO_COUNT_64;
-          kret =
-            mach_vm_region (task, &address, &size, VM_REGION_BASIC_INFO_64,
-                             (vm_region_info_t) &info, &count, &object_name);
-          if (kret != KERN_SUCCESS)
-            {
-              size = 0;
-              print = done = 1;
-            }
-        }
+       {
+         count = VM_REGION_BASIC_INFO_COUNT_64;
+         kret =
+           mach_vm_region (task, &address, &size, VM_REGION_BASIC_INFO_64,
+                             (vm_region_info_t) &info, &count, &object_name);
+         if (kret != KERN_SUCCESS)
+           {
+             size = 0;
+             print = done = 1;
+           }
+       }
 
       if (address != prev_address + prev_size)
-        print = 1;
+       print = 1;
 
       if ((info.protection != prev_info.protection)
-          || (info.max_protection != prev_info.max_protection)
-          || (info.inheritance != prev_info.inheritance)
-          || (info.shared != prev_info.reserved)
-          || (info.reserved != prev_info.reserved))
-        print = 1;
+         || (info.max_protection != prev_info.max_protection)
+         || (info.inheritance != prev_info.inheritance)
+         || (info.shared != prev_info.reserved)
+         || (info.reserved != prev_info.reserved))
+       print = 1;
 
       if (print)
-        {
-          printf_filtered (_("%s-%s %s/%s  %s %s %s"),
-                           paddress (target_gdbarch (), prev_address),
-                           paddress (target_gdbarch (), prev_address + prev_size),
-                           unparse_protection (prev_info.protection),
-                           unparse_protection (prev_info.max_protection),
-                           unparse_inheritance (prev_info.inheritance),
-                           prev_info.shared ? _("shrd") : _("priv"),
-                           prev_info.reserved ? _("reserved") : _("not-rsvd"));
-
-          if (nsubregions > 1)
-            printf_filtered (_(" (%d sub-rgn)"), nsubregions);
-
-          printf_filtered (_("\n"));
-
-          prev_address = address;
-          prev_size = size;
-          memcpy (&prev_info, &info, sizeof (vm_region_basic_info_data_64_t));
-          nsubregions = 1;
-
-          num_printed++;
-        }
+       {
+         printf_filtered (_("%s-%s %s/%s  %s %s %s"),
+                          paddress (target_gdbarch (), prev_address),
+                          paddress (target_gdbarch (), prev_address + prev_size),
+                          unparse_protection (prev_info.protection),
+                          unparse_protection (prev_info.max_protection),
+                          unparse_inheritance (prev_info.inheritance),
+                          prev_info.shared ? _("shrd") : _("priv"),
+                          prev_info.reserved ? _("reserved") : _("not-rsvd"));
+
+         if (nsubregions > 1)
+           printf_filtered (_(" (%d sub-rgn)"), nsubregions);
+
+         printf_filtered (_("\n"));
+
+         prev_address = address;
+         prev_size = size;
+         memcpy (&prev_info, &info, sizeof (vm_region_basic_info_data_64_t));
+         nsubregions = 1;
+
+         num_printed++;
+       }
       else
-        {
-          prev_size += size;
-          nsubregions++;
-        }
+       {
+         prev_size += size;
+         nsubregions++;
+       }
 
       if ((max > 0) && (num_printed >= max))
-        done = 1;
+       done = 1;
 
       if (done)
-        break;
+       break;
     }
 }
 
 static void
 darwin_debug_regions_recurse (task_t task)
 {
-  mach_vm_address_t r_addr;
   mach_vm_address_t r_start;
   mach_vm_size_t r_size;
   natural_t r_depth;
   mach_msg_type_number_t r_info_size;
   vm_region_submap_short_info_data_64_t r_info;
   kern_return_t kret;
-  int ret;
-  struct cleanup *table_chain;
   struct ui_out *uiout = current_uiout;
 
-  table_chain = make_cleanup_ui_out_table_begin_end (uiout, 9, -1, "regions");
+  ui_out_emit_table table_emitter (uiout, 9, -1, "regions");
 
   if (gdbarch_addr_bit (target_gdbarch ()) <= 32)
     {
@@ -647,7 +643,6 @@ darwin_debug_regions_recurse (task_t task)
   while (1)
     {
       const char *tag;
-      struct cleanup *row_chain;
 
       r_info_size = VM_REGION_SUBMAP_SHORT_INFO_COUNT_64;
       r_size = -1;
@@ -656,39 +651,37 @@ darwin_debug_regions_recurse (task_t task)
                                     &r_info_size);
       if (kret != KERN_SUCCESS)
        break;
-      row_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "regions-row");
-
-      uiout->field_core_addr ("start", target_gdbarch (), r_start);
-      uiout->field_core_addr ("end", target_gdbarch (), r_start + r_size);
-      uiout->field_string ("min-prot",
-                          unparse_protection (r_info.protection));
-      uiout->field_string ("max-prot",
-                          unparse_protection (r_info.max_protection));
-      uiout->field_string ("inheritence",
-                          unparse_inheritance (r_info.inheritance));
-      uiout->field_string ("share-mode",
-                          unparse_share_mode (r_info.share_mode));
-      uiout->field_int ("depth", r_depth);
-      uiout->field_string ("submap",
-                          r_info.is_submap ? _("sm ") : _("obj"));
-      tag = unparse_user_tag (r_info.user_tag);
-      if (tag)
-       uiout->field_string ("tag", tag);
-      else
-       uiout->field_int ("tag", r_info.user_tag);
-
-      do_cleanups (row_chain);
 
-      if (!uiout->is_mi_like_p ())
-       uiout->text ("\n");
+      {
+       ui_out_emit_tuple tuple_emitter (uiout, "regions-row");
+
+       uiout->field_core_addr ("start", target_gdbarch (), r_start);
+       uiout->field_core_addr ("end", target_gdbarch (), r_start + r_size);
+       uiout->field_string ("min-prot",
+                            unparse_protection (r_info.protection));
+       uiout->field_string ("max-prot",
+                            unparse_protection (r_info.max_protection));
+       uiout->field_string ("inheritence",
+                            unparse_inheritance (r_info.inheritance));
+       uiout->field_string ("share-mode",
+                            unparse_share_mode (r_info.share_mode));
+       uiout->field_signed ("depth", r_depth);
+       uiout->field_string ("submap",
+                            r_info.is_submap ? _("sm ") : _("obj"));
+       tag = unparse_user_tag (r_info.user_tag);
+       if (tag)
+         uiout->field_string ("tag", tag);
+       else
+         uiout->field_signed ("tag", r_info.user_tag);
+      }
+
+      uiout->text ("\n");
 
       if (r_info.is_submap)
        r_depth++;
       else
        r_start += r_size;
     }
-  do_cleanups (table_chain);
-
 }
 
 
@@ -699,7 +692,7 @@ darwin_debug_region (task_t task, mach_vm_address_t address)
 }
 
 static void
-info_mach_regions_command (char *args, int from_tty)
+info_mach_regions_command (const char *args, int from_tty)
 {
   task_t task;
 
@@ -711,7 +704,7 @@ info_mach_regions_command (char *args, int from_tty)
 }
 
 static void
-info_mach_regions_recurse_command (char *args, int from_tty)
+info_mach_regions_recurse_command (const char *args, int from_tty)
 {
   task_t task;
 
@@ -723,7 +716,7 @@ info_mach_regions_recurse_command (char *args, int from_tty)
 }
 
 static void
-info_mach_region_command (char *exp, int from_tty)
+info_mach_region_command (const char *exp, int from_tty)
 {
   struct value *val;
   mach_vm_address_t address;
@@ -737,11 +730,12 @@ info_mach_region_command (char *exp, int from_tty)
     }
   address = value_as_address (val);
 
-  if (ptid_equal (inferior_ptid, null_ptid))
+  if (inferior_ptid == null_ptid)
     error (_("Inferior not available"));
 
   inf = current_inferior ();
-  darwin_debug_region (inf->priv->task, address);
+  darwin_inferior *priv = get_darwin_inferior (inf);
+  darwin_debug_region (priv->task, address);
 }
 
 static void
@@ -795,10 +789,8 @@ disp_exception (const darwin_exception_info *info)
 }
 
 static void
-info_mach_exceptions_command (char *args, int from_tty)
+info_mach_exceptions_command (const char *args, int from_tty)
 {
-  int i;
-  task_t task;
   kern_return_t kret;
   darwin_exception_info info;
 
@@ -808,14 +800,17 @@ info_mach_exceptions_command (char *args, int from_tty)
     {
       if (strcmp (args, "saved") == 0)
        {
-         if (ptid_equal (inferior_ptid, null_ptid))
+         if (inferior_ptid == null_ptid)
            printf_unfiltered (_("No inferior running\n"));
-         disp_exception (&current_inferior ()->priv->exception_info);
+
+         darwin_inferior *priv = get_darwin_inferior (current_inferior ());
+
+         disp_exception (&priv->exception_info);
          return;
        }
       else if (strcmp (args, "host") == 0)
        {
-         /* FIXME: This need a privilegied host port!  */
+         /* FIXME: This needs a privileged host port!  */
          kret = host_get_exception_ports
            (darwin_host_self, EXC_MASK_ALL, info.masks,
             &info.count, info.ports, info.behaviors, info.flavors);
@@ -829,41 +824,44 @@ info_mach_exceptions_command (char *args, int from_tty)
     {
       struct inferior *inf;
 
-      if (ptid_equal (inferior_ptid, null_ptid))
+      if (inferior_ptid == null_ptid)
        printf_unfiltered (_("No inferior running\n"));
       inf = current_inferior ();
       
+      darwin_inferior *priv = get_darwin_inferior (inf);
+
       kret = task_get_exception_ports
-       (inf->priv->task, EXC_MASK_ALL, info.masks,
+       (priv->task, EXC_MASK_ALL, info.masks,
         &info.count, info.ports, info.behaviors, info.flavors);
       MACH_CHECK_ERROR (kret);
       disp_exception (&info);
     }
 }
 
+void _initialize_darwin_info_commands ();
 void
-_initialize_darwin_info_commands (void)
+_initialize_darwin_info_commands ()
 {
   add_info ("mach-tasks", info_mach_tasks_command,
-            _("Get list of tasks in system."));
+           _("Get list of tasks in system."));
   add_info ("mach-ports", info_mach_ports_command,
-            _("Get list of ports in a task."));
+           _("Get list of ports in a task."));
   add_info ("mach-port", info_mach_port_command,
-            _("Get info on a specific port."));
+           _("Get info on a specific port."));
   add_info ("mach-task", info_mach_task_command,
-            _("Get info on a specific task."));
+           _("Get info on a specific task."));
   add_info ("mach-threads", info_mach_threads_command,
-            _("Get list of threads in a task."));
+           _("Get list of threads in a task."));
   add_info ("mach-thread", info_mach_thread_command,
-            _("Get info on a specific thread."));
+           _("Get info on a specific thread."));
 
   add_info ("mach-regions", info_mach_regions_command,
-            _("Get information on all mach region for the task."));
+           _("Get information on all mach region for the task."));
   add_info ("mach-regions-rec", info_mach_regions_recurse_command,
-            _("Get information on all mach sub region for the task."));
+           _("Get information on all mach sub region for the task."));
   add_info ("mach-region", info_mach_region_command,
-            _("Get information on mach region at given address."));
+           _("Get information on mach region at given address."));
 
   add_info ("mach-exceptions", info_mach_exceptions_command,
-            _("Disp mach exceptions."));
+           _("Disp mach exceptions."));
 }
This page took 0.032667 seconds and 4 git commands to generate.