Mon Dec 8 14:28:49 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
authorMichael Snyder <msnyder@vmware.com>
Mon, 8 Dec 1997 22:32:35 +0000 (22:32 +0000)
committerMichael Snyder <msnyder@vmware.com>
Mon, 8 Dec 1997 22:32:35 +0000 (22:32 +0000)
        * tracepoint.c (memrange_sortmerge): allow for memranges
        that overlap.  (collect_pseudocommand etc.) cleanup decls.

gdb/ChangeLog
gdb/tracepoint.c

index f4f1a32ec4229a7fd12134b6f9cc8c923a25fb97..b80a3657ff116aa95dd6a84caa3003522ca74ab3 100644 (file)
@@ -1,3 +1,8 @@
+Mon Dec  8 14:28:49 1997  Michael Snyder  (msnyder@cleaver.cygnus.com)
+
+       * tracepoint.c (memrange_sortmerge): allow for memranges 
+       that overlap.  (collect_pseudocommand etc.) cleanup decls.
+
 Fri Dec  5 10:31:23 1997  Keith Seitz  <keiths@pizza.cygnus.com>
 
        * gdbtk.c (gdbtk_init): add gdb_find_file to interpreter
index f0985417f1208d50599a65990c77943681fbb4f8..2b819111949d314ce2e3c6878704e9cb80866c8f 100644 (file)
@@ -733,18 +733,24 @@ static char *parse_and_eval_memrange PARAMS ((char *,
 
 static void 
 end_actions_pseudocommand (args, from_tty)
+     char *args;
+     int from_tty;
 {
   error ("This command cannot be used at the top level.");
 }
 
 static void
 while_stepping_pseudocommand (args, from_tty)
+     char *args;
+     int from_tty;
 {
   error ("This command can only be used in a tracepoint actions list.");
 }
 
 static void
 collect_pseudocommand (args, from_tty)
+     char *args;
+     int from_tty;
 {
   error ("This command can only be used in a tracepoint actions list.");
 }
@@ -884,6 +890,9 @@ validate_actionline (line, t)
   if (*p == '\0')      /* empty line: just prompt for another line. */
     return BADLINE;
 
+  if (*p == '#')       /* comment line */
+    return GENERIC;
+
   c = lookup_cmd (&p, cmdlist, "", -1, 1);
   if (c == 0)
     {
@@ -1130,7 +1139,9 @@ memrange_sortmerge (memranges)
              memranges->list[b].start - memranges->list[a].end <= 
              MAX_REGISTER_VIRTUAL_SIZE)
            {
-             memranges->list[a].end = memranges->list[b].end;
+             /* memrange b starts before memrange a ends; merge them.  */
+             if (memranges->list[b].end > memranges->list[a].end)
+               memranges->list[a].end = memranges->list[b].end;
              continue;         /* next b, same a */
            }
          a++;                  /* next a */
@@ -1405,6 +1416,9 @@ encode_actions (t, tdp_actions, step_count, stepping_actions)
       while (isspace (*action_exp))
        action_exp++;
 
+      if (*action_exp == '#')  /* comment line */
+       return;
+
       cmd = lookup_cmd (&action_exp, cmdlist, "", -1, 1);
       if (cmd == 0)
        error ("Bad action list item: %s", action_exp);
@@ -2106,13 +2120,16 @@ tracepoint_save_command (args, from_tty)
                actionline++;
 
              fprintf (fp, "%s%s\n", indent, actionline);
-             cmd = lookup_cmd (&actionline, cmdlist, "", -1, 1);
-             if (cmd == 0)
-               error ("Bad action list item: %s", actionline);
-             if (cmd->function.cfunc == while_stepping_pseudocommand)
-               indent = i2;
-             else if (cmd->function.cfunc == end_actions_pseudocommand)
-               indent = i1;
+             if (*actionline != '#')   /* skip for comment lines */
+               {
+                 cmd = lookup_cmd (&actionline, cmdlist, "", -1, 1);
+                 if (cmd == 0)
+                   error ("Bad action list item: %s", actionline);
+                 if (cmd->function.cfunc == while_stepping_pseudocommand)
+                   indent = i2;
+                 else if (cmd->function.cfunc == end_actions_pseudocommand)
+                   indent = i1;
+               }
            }
        }
     }
@@ -2316,6 +2333,9 @@ trace_dump_command (args, from_tty)
       /* The collection actions to be done while stepping are
         bracketed by the commands "while-stepping" and "end".  */
 
+      if (*action_exp == '#')  /* comment line */
+       continue;
+
       cmd = lookup_cmd (&action_exp, cmdlist, "", -1, 1);
       if (cmd == 0)
        error ("Bad action list item: %s", action_exp);