2011-05-27 Pedro Alves <pedro@codesourcery.com>

* defs.h (struct continuation, continuation_ftype)
	(continuation_free_arg_ftype, add_continuation)
	(do_all_continuations, do_all_continuations_thread)
	(discard_all_continuations, discard_all_continuations_thread)
	(add_intermediate_continuation, do_all_intermediate_continuations)
	(do_all_intermediate_continuations_thread)
	(discard_all_intermediate_continuations)
	(discard_all_intermediate_continuations_thread)
	(add_inferior_continuation, do_all_inferior_continuations)
	(discard_all_inferior_continuations): Move to ...
	* continuations.h: ... this new file.
	* breakpoint.c, continuations.c, event-top.c, inf-loop.c,
	infcmd.c, inferior.c, infrun.c, interps.c: Include
	continuations.h.
This commit is contained in:
Pedro Alves 2011-05-27 18:28:18 +00:00
parent 440db57552
commit be34f8494e
12 changed files with 93 additions and 44 deletions

View File

@ -1,3 +1,20 @@
2011-05-27 Pedro Alves <pedro@codesourcery.com>
* defs.h (struct continuation, continuation_ftype)
(continuation_free_arg_ftype, add_continuation)
(do_all_continuations, do_all_continuations_thread)
(discard_all_continuations, discard_all_continuations_thread)
(add_intermediate_continuation, do_all_intermediate_continuations)
(do_all_intermediate_continuations_thread)
(discard_all_intermediate_continuations)
(discard_all_intermediate_continuations_thread)
(add_inferior_continuation, do_all_inferior_continuations)
(discard_all_inferior_continuations): Move to ...
* continuations.h: ... this new file.
* breakpoint.c, continuations.c, event-top.c, inf-loop.c,
infcmd.c, inferior.c, infrun.c, interps.c: Include
continuations.h.
2011-05-27 Jan Kratochvil <jan.kratochvil@redhat.com>
Doug Evans <dje@google.com>

View File

@ -64,6 +64,7 @@
#include "xml-syscall.h"
#include "parser-defs.h"
#include "cli/cli-utils.h"
#include "continuations.h"
/* readline include files */
#include "readline/readline.h"

View File

@ -22,6 +22,7 @@
#include "defs.h"
#include "gdbthread.h"
#include "inferior.h"
#include "continuations.h"
struct continuation
{

67
gdb/continuations.h Normal file
View File

@ -0,0 +1,67 @@
/* Continuations for GDB, the GNU debugger.
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
2009, 2010, 2011 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 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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, see <http://www.gnu.org/licenses/>. */
#ifndef CONTINUATIONS_H
#define CONTINUATIONS_H
struct thread_info;
struct inferior;
/* To continue the execution commands when running gdb asynchronously.
A continuation structure contains a pointer to a function to be called
to finish the command, once the target has stopped. Such mechanism is
used by the finish and until commands, and in the remote protocol
when opening an extended-remote connection. */
/* Prototype of the continuation callback functions. */
typedef void (continuation_ftype) (void *);
/* Prototype of the function responsible for releasing the argument
passed to the continuation callback functions, either when the
continuation is called, or discarded. */
typedef void (continuation_free_arg_ftype) (void *);
/* Thread specific continuations. */
extern void add_continuation (struct thread_info *,
continuation_ftype *, void *,
continuation_free_arg_ftype *);
extern void do_all_continuations (void);
extern void do_all_continuations_thread (struct thread_info *);
extern void discard_all_continuations (void);
extern void discard_all_continuations_thread (struct thread_info *);
extern void add_intermediate_continuation (struct thread_info *,
continuation_ftype *, void *,
continuation_free_arg_ftype *);
extern void do_all_intermediate_continuations (void);
extern void do_all_intermediate_continuations_thread (struct thread_info *);
extern void discard_all_intermediate_continuations (void);
extern void discard_all_intermediate_continuations_thread (struct thread_info *);
/* Inferior specific (any thread) continuations. */
extern void add_inferior_continuation (continuation_ftype *,
void *,
continuation_free_arg_ftype *);
extern void do_all_inferior_continuations (void);
extern void discard_all_inferior_continuations (struct inferior *inf);
#endif

View File

@ -730,52 +730,9 @@ extern struct command_line *read_command_lines_1 (char * (*) (void), int,
extern void free_command_lines (struct command_line **);
/* To continue the execution commands when running gdb asynchronously.
A continuation structure contains a pointer to a function to be called
to finish the command, once the target has stopped. Such mechanism is
used by the finish and until commands, and in the remote protocol
when opening an extended-remote connection. */
struct continuation;
struct thread_info;
struct inferior;
/* From continuations.c */
/* Prototype of the continuation callback functions. */
typedef void (continuation_ftype) (void *);
/* Prototype of the function responsible for releasing the argument
passed to the continuation callback functions, either when the
continuation is called, or discarded. */
typedef void (continuation_free_arg_ftype) (void *);
/* Thread specific continuations. */
extern void add_continuation (struct thread_info *,
continuation_ftype *, void *,
continuation_free_arg_ftype *);
extern void do_all_continuations (void);
extern void do_all_continuations_thread (struct thread_info *);
extern void discard_all_continuations (void);
extern void discard_all_continuations_thread (struct thread_info *);
extern void add_intermediate_continuation (struct thread_info *,
continuation_ftype *, void *,
continuation_free_arg_ftype *);
extern void do_all_intermediate_continuations (void);
extern void do_all_intermediate_continuations_thread (struct thread_info *);
extern void discard_all_intermediate_continuations (void);
extern void discard_all_intermediate_continuations_thread (struct thread_info *);
/* Inferior specific (any thread) continuations. */
extern void add_inferior_continuation (continuation_ftype *,
void *,
continuation_free_arg_ftype *);
extern void do_all_inferior_continuations (void);
extern void discard_all_inferior_continuations (struct inferior *inf);
/* String containing the current directory (what getwd would return). */
extern char *current_directory;

View File

@ -33,7 +33,7 @@
#include "cli/cli-script.h" /* for reset_command_nest_depth */
#include "main.h"
#include "gdbthread.h"
#include "continuations.h"
#include "gdbcmd.h" /* for dont_repeat() */
/* readline include files. */

View File

@ -28,6 +28,7 @@
#include "exceptions.h"
#include "language.h"
#include "gdbthread.h"
#include "continuations.h"
static int fetch_inferior_event_wrapper (gdb_client_data client_data);

View File

@ -56,6 +56,7 @@
#include "inline-frame.h"
#include "tracepoint.h"
#include "inf-loop.h"
#include "continuations.h"
/* Functions exported for general use, in inferior.h: */

View File

@ -31,6 +31,7 @@
#include "symfile.h"
#include "environ.h"
#include "cli/cli-utils.h"
#include "continuations.h"
void _initialize_inferiors (void);

View File

@ -54,6 +54,7 @@
#include "inline-frame.h"
#include "jit.h"
#include "tracepoint.h"
#include "continuations.h"
/* Prototypes for local functions */

View File

@ -41,6 +41,7 @@
#include "gdb_assert.h"
#include "top.h" /* For command_loop. */
#include "exceptions.h"
#include "continuations.h"
struct interp
{

View File

@ -45,6 +45,7 @@
#include "cli/cli-decode.h"
#include "gdb_regex.h"
#include "cli/cli-utils.h"
#include "continuations.h"
/* Definition of struct thread_info exported to gdbthread.h. */