X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Finfrun.h;h=61d3b2071fea7b91e4a8a0e175c95f95b4469af5;hb=0154d99053a95392380cd4629a89b0ac46df3737;hp=7978d2c82008970ae2afc86a55f67293b1f3e9a8;hpb=221e1a37cd14f7c98b4ea1ab24bd721a8b144711;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/infrun.h b/gdb/infrun.h index 7978d2c820..61d3b2071f 100644 --- a/gdb/infrun.h +++ b/gdb/infrun.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1986-2015 Free Software Foundation, Inc. +/* Copyright (C) 1986-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -23,6 +23,7 @@ struct target_waitstatus; struct frame_info; struct address_space; +struct return_value_info; /* True if we are debugging run control. */ extern unsigned int debug_infrun; @@ -61,6 +62,11 @@ extern int non_stop; starting an inferior. */ extern int disable_randomization; +/* Returns a unique identifier for the current stop. This can be used + to tell whether a command has proceeded the inferior past the + current location. */ +extern ULONGEST get_stop_id (void); + /* Reverse execution. */ enum exec_direction_kind { @@ -68,10 +74,8 @@ enum exec_direction_kind EXEC_REVERSE }; -/* The current execution direction. This should only be set to enum - exec_direction_kind values. It is only an int to make it - compatible with make_cleanup_restore_integer. */ -extern int execution_direction; +/* The current execution direction. */ +extern enum exec_direction_kind execution_direction; extern void start_remote (int from_tty); @@ -99,11 +103,21 @@ extern ptid_t user_visible_resume_ptid (int step); extern void wait_for_inferior (void); -extern void normal_stop (void); +/* Return control to GDB when the inferior stops for real. Print + appropriate messages, remove breakpoints, give terminal our modes, + and run the stop hook. Returns true if the stop hook proceeded the + target, false otherwise. */ +extern int normal_stop (void); extern void get_last_target_status (ptid_t *ptid, struct target_waitstatus *status); +extern void set_last_target_status (ptid_t ptid, + struct target_waitstatus status); + +/* Stop all threads. Only returns after everything is halted. */ +extern void stop_all_threads (void); + extern void prepare_for_detach (void); extern void fetch_inferior_event (void *); @@ -148,7 +162,18 @@ extern void print_exited_reason (struct ui_out *uiout, int exitstatus); inferior has stopped. */ extern void print_no_history_reason (struct ui_out *uiout); -extern void print_stop_event (struct target_waitstatus *ws); +/* Print the result of a function at the end of a 'finish' command. + RV points at an object representing the captured return value/type + and its position in the value history. */ + +extern void print_return_value (struct ui_out *uiout, + struct return_value_info *rv); + +/* Print current location without a level number, if we have changed + functions or hit a breakpoint. Print source line if we have one. + If the execution command captured a return value, print it. */ + +extern void print_stop_event (struct ui_out *uiout); /* Pretty print the results of target_wait, for debugging purposes. */ @@ -197,8 +222,16 @@ enum gdb_signal gdb_signal_from_command (int num); /* Enables/disables infrun's async event source in the event loop. */ extern void infrun_async (int enable); +/* Call infrun's event handler the next time through the event + loop. */ +extern void mark_infrun_async_event_handler (void); + /* The global queue of threads that need to do a step-over operation to get past e.g., a breakpoint. */ extern struct thread_info *step_over_queue_head; +/* Remove breakpoints if possible (usually that means, if everything + is stopped). On failure, print a message. */ +extern void maybe_remove_breakpoints (void); + #endif /* INFRUN_H */