/* Tracing functionality for remote targets in custom GDB protocol
- Copyright 1997, 1998 Free Software Foundation, Inc.
+ Copyright 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of GDB.
#include "inferior.h"
#include "tracepoint.h"
#include "remote.h"
+#include "linespec.h"
+#include "completer.h"
+#include "regcache.h"
#include "ax.h"
#include "ax-gdb.h"
struct cleanup *old_chain;
t = (struct tracepoint *) xmalloc (sizeof (struct tracepoint));
- old_chain = make_cleanup (free, t);
+ old_chain = make_cleanup (xfree, t);
memset (t, 0, sizeof (*t));
t->address = sal.pc;
if (sal.symtab == NULL)
delete_tracepoint_hook (t);
if (t->addr_string)
- free (t->addr_string);
+ xfree (t->addr_string);
if (t->source_file)
- free (t->source_file);
+ xfree (t->source_file);
if (t->actions)
free_actions (t);
- free (t);
+ xfree (t);
break;
}
}
error ("expression too complicated, try simplifying");
ax_reqs (aexpr, &areqs);
- (void) make_cleanup (free, areqs.reg_mask);
+ (void) make_cleanup (xfree, areqs.reg_mask);
if (areqs.flaw != agent_flaw_none)
error ("malformed expression");
{
next = line->next;
if (line->action)
- free (line->action);
- free (line);
+ xfree (line->action);
+ xfree (line);
}
t->actions = NULL;
}
return;
for (ndx = 0; actions_list[ndx]; ndx++)
- free (actions_list[ndx]);
+ xfree (actions_list[ndx]);
- free (actions_list);
+ xfree (actions_list);
}
/* render all actions into gdb protocol */
sal = sals.sals[0];
}
- old_chain = make_cleanup (free, sals.sals);
+ old_chain = make_cleanup (xfree, sals.sals);
if (sal.symtab == 0)
{
printf_filtered ("TFIND: No line number information available");
void
_initialize_tracepoint (void)
{
+ struct cmd_list_element *c;
+
tracepoint_chain = 0;
tracepoint_count = 0;
traceframe_number = -1;
add_info_alias ("tp", "tracepoints", 1);
- add_com ("save-tracepoints", class_trace, tracepoint_save_command,
- "Save current tracepoint definitions as a script.\n\
+ c = add_com ("save-tracepoints", class_trace, tracepoint_save_command,
+ "Save current tracepoint definitions as a script.\n\
Use the 'source' command in another debug session to restore them.");
+ c->completer = filename_completer;
add_com ("tdump", class_trace, trace_dump_command,
"Print everything collected at the current tracepoint.");