* infrun.c (handle_inferior_event): If
[deliverable/binutils-gdb.git] / gdb / tracepoint.c
index b9b9f5ee8c6ba2dbc46c9127d434aaee21407e95..2d744aedb81f7e1ea1d2cbe48d0558baa56e723f 100644 (file)
@@ -1,13 +1,13 @@
 /* Tracing functionality for remote targets in custom GDB protocol
 
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2007 Free Software Foundation, Inc.
+   2007, 2008 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -16,9 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
 #include "symtab.h"
@@ -445,7 +443,7 @@ trace_mention (struct tracepoint *tp)
   if (addressprint || (tp->source_file == NULL))
     {
       printf_filtered (" at ");
-      deprecated_print_address_numeric (tp->address, 1, gdb_stdout);
+      printf_filtered ("%s", paddress (tp->address));
     }
   if (tp->source_file)
     printf_filtered (": file %s, line %d.",
@@ -585,11 +583,12 @@ tracepoint_operation (struct tracepoint *t, int from_tty,
       ALL_TRACEPOINTS (t2)
        if (t2->next == t)
        {
-         tracepoint_delete_event (t2->number);
          t2->next = t->next;
          break;
        }
 
+      tracepoint_delete_event (t->number);
+
       if (t->addr_string)
        xfree (t->addr_string);
       if (t->source_file)
@@ -1162,7 +1161,7 @@ add_register (struct collection_list *collection, unsigned int regno)
 {
   if (info_verbose)
     printf_filtered ("collect register %d\n", regno);
-  if (regno > (8 * sizeof (collection->regs_mask)))
+  if (regno >= (8 * sizeof (collection->regs_mask)))
     error (_("Internal: register number %d too large for tracepoint"),
           regno);
   collection->regs_mask[regno / 8] |= 1 << (regno % 8);
@@ -1489,7 +1488,10 @@ stringify_collection_list (struct collection_list *list, char *string)
   (*str_list)[ndx] = NULL;
 
   if (ndx == 0)
-    return NULL;
+    {
+      free (str_list);
+      return NULL;
+    }
   else
     return *str_list;
 }
@@ -2448,8 +2450,7 @@ scope_info (char *args, int from_tty)
              break;
            case LOC_STATIC:
              printf_filtered ("in static storage at address ");
-             deprecated_print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), 
-                                    1, gdb_stdout);
+             printf_filtered ("%s", paddress (SYMBOL_VALUE_ADDRESS (sym)));
              break;
            case LOC_REGISTER:
              printf_filtered ("a local variable in register $%s",
@@ -2484,13 +2485,11 @@ scope_info (char *args, int from_tty)
              continue;
            case LOC_LABEL:
              printf_filtered ("a label at address ");
-             deprecated_print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), 
-                                    1, gdb_stdout);
+             printf_filtered ("%s", paddress (SYMBOL_VALUE_ADDRESS (sym)));
              break;
            case LOC_BLOCK:
              printf_filtered ("a function at address ");
-             deprecated_print_address_numeric (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)),
-                                    1, gdb_stdout);
+             printf_filtered ("%s", paddress (BLOCK_START (SYMBOL_BLOCK_VALUE (sym))));
              break;
            case LOC_BASEREG:
              printf_filtered ("a variable at offset %ld from register $%s",
@@ -2512,8 +2511,7 @@ scope_info (char *args, int from_tty)
              else
                {
                  printf_filtered ("static storage at address ");
-                 deprecated_print_address_numeric (SYMBOL_VALUE_ADDRESS (msym), 1,
-                                        gdb_stdout);
+                 printf_filtered ("%s", paddress (SYMBOL_VALUE_ADDRESS (msym)));
                }
              break;
            case LOC_OPTIMIZED_OUT:
@@ -2524,8 +2522,7 @@ scope_info (char *args, int from_tty)
              break;
            case LOC_INDIRECT:
              printf_filtered ("extern (local indirect) at address ");
-             deprecated_print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), 
-                                    1, gdb_stdout);
+             printf_filtered ("%s", paddress (SYMBOL_VALUE_ADDRESS (sym)));
              break;
            case LOC_COMPUTED:
            case LOC_COMPUTED_ARG:
This page took 0.025972 seconds and 4 git commands to generate.