PPC64: Fix gdb.arch/ppc64-atomic-inst.exp with displaced stepping
[deliverable/binutils-gdb.git] / gdb / tracepoint.c
index 51af2af27200fc4988d70aa3c410b2238c12e34c..7c04ecbcd76741ae049514fa30d6604e43c8af16 100644 (file)
@@ -1,6 +1,6 @@
 /* Tracing functionality for remote targets in custom GDB protocol
 
-   Copyright (C) 1997-2014 Free Software Foundation, Inc.
+   Copyright (C) 1997-2015 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -1858,7 +1858,8 @@ start_tracing (char *notes)
       t->number_on_target = b->number;
 
       for (loc = b->loc; loc; loc = loc->next)
-       if (loc->probe.probe != NULL)
+       if (loc->probe.probe != NULL
+           && loc->probe.probe->pops->set_semaphore != NULL)
          loc->probe.probe->pops->set_semaphore (loc->probe.probe,
                                                 loc->probe.objfile,
                                                 loc->gdbarch);
@@ -1957,7 +1958,8 @@ stop_tracing (char *note)
             but we don't really care if this semaphore goes out of sync.
             That's why we are decrementing it here, but not taking care
             in other places.  */
-         if (loc->probe.probe != NULL)
+         if (loc->probe.probe != NULL
+             && loc->probe.probe->pops->clear_semaphore != NULL)
            loc->probe.probe->pops->clear_semaphore (loc->probe.probe,
                                                     loc->probe.objfile,
                                                     loc->gdbarch);
@@ -2737,7 +2739,7 @@ scope_info (char *args, int from_tty)
          if (symname == NULL || *symname == '\0')
            continue;           /* Probably botched, certainly useless.  */
 
-         gdbarch = get_objfile_arch (SYMBOL_SYMTAB (sym)->objfile);
+         gdbarch = symbol_arch (sym);
 
          printf_filtered ("Symbol %s is ", symname);
 
@@ -3828,11 +3830,11 @@ parse_tracepoint_definition (char *line, struct uploaded_tp **utpp)
       end = hex2bin (p, (gdb_byte *) buf, strlen (p) / 2);
       buf[end] = '\0';
 
-      if (strncmp (srctype, "at:", strlen ("at:")) == 0)
+      if (startswith (srctype, "at:"))
        utp->at_string = xstrdup (buf);
-      else if (strncmp (srctype, "cond:", strlen ("cond:")) == 0)
+      else if (startswith (srctype, "cond:"))
        utp->cond_string = xstrdup (buf);
-      else if (strncmp (srctype, "cmd:", strlen ("cmd:")) == 0)
+      else if (startswith (srctype, "cmd:"))
        VEC_safe_push (char_ptr, utp->cmd_strings, xstrdup (buf));
     }
   else if (piece == 'V')
This page took 0.04091 seconds and 4 git commands to generate.