mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-02 04:27:46 +08:00
2002-08-26 Joel Brobecker <brobecker@gnat.com>
* cli/cli-script.c (copy_command_lines): New function. * defs.h (copy_command_lines): Export. * testsuite/gdb.base/commands.exp: New tests for commands attached to a temporary breakpoint, and for commands that delete the breakpoint they are attached to. 2002-08-26 Michael Snyder <msnyder@redhat.com> * breakpoint.c (bpstat_stop_status): Instead of copying the pointer to the breakpoint commands struct, make a new copy of the struct and point to that. (bpstat_clear): Free the commands struct. (bpstat_clear_actions): Free the commands struct. (bpstat_do_actions): Free the command actions. Also execute the local cleanups, instead of deleting them. (delete_breakpoint): Leave the commands field of the bpstat chain alone -- it will be freed later.
This commit is contained in:
@ -1012,6 +1012,36 @@ make_cleanup_free_command_lines (struct command_line **arg)
|
||||
{
|
||||
return make_cleanup (do_free_command_lines_cleanup, arg);
|
||||
}
|
||||
|
||||
struct command_line *
|
||||
copy_command_lines (struct command_line *cmds)
|
||||
{
|
||||
struct command_line *result = NULL;
|
||||
|
||||
if (cmds)
|
||||
{
|
||||
result = (struct command_line *) xmalloc (sizeof (struct command_line));
|
||||
|
||||
result->next = copy_command_lines (cmds->next);
|
||||
result->line = xstrdup (cmds->line);
|
||||
result->control_type = cmds->control_type;
|
||||
result->body_count = cmds->body_count;
|
||||
if (cmds->body_count > 0)
|
||||
{
|
||||
int i;
|
||||
|
||||
result->body_list = (struct command_line **)
|
||||
xmalloc (sizeof (struct command_line *) * cmds->body_count);
|
||||
|
||||
for (i = 0; i < cmds->body_count; i++)
|
||||
result->body_list[i] = copy_command_lines (cmds->body_list[i]);
|
||||
}
|
||||
else
|
||||
result->body_list = NULL;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static void
|
||||
validate_comname (char *comname)
|
||||
|
Reference in New Issue
Block a user