GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
infrun.h File Reference
#include "gdbthread.h"
#include "symtab.h"
#include "gdbsupport/byte-vector.h"
#include "gdbsupport/intrusive_list.h"

Go to the source code of this file.

Classes

struct  scoped_disable_commit_resumed
 
struct  scoped_enable_commit_resumed
 

Macros

#define infrun_debug_printf(fmt, ...)    debug_prefixed_printf_cond (debug_infrun, "infrun", fmt, ##__VA_ARGS__)
 
#define INFRUN_SCOPED_DEBUG_START_END(fmt, ...)    scoped_debug_start_end (debug_infrun, "infrun", fmt, ##__VA_ARGS__)
 
#define INFRUN_SCOPED_DEBUG_ENTER_EXIT    scoped_debug_enter_exit (debug_infrun, "infrun")
 

Enumerations

enum  exec_direction_kind { EXEC_FORWARD , EXEC_REVERSE }
 

Functions

template<typename ThreadRange >
static void infrun_debug_show_threads (const char *title, ThreadRange threads)
 
ULONGEST get_stop_id (void)
 
void update_previous_thread ()
 
thread_infoget_previous_thread ()
 
void start_remote (int from_tty)
 
void clear_proceed_status (int step)
 
void proceed (CORE_ADDR, enum gdb_signal)
 
ptid_t user_visible_resume_ptid (int step)
 
process_stratum_targetuser_visible_resume_target (ptid_t resume_ptid)
 
bool normal_stop ()
 
void get_last_target_status (process_stratum_target **target, ptid_t *ptid, struct target_waitstatus *status)
 
void set_last_target_status (process_stratum_target *target, ptid_t ptid, const target_waitstatus &status)
 
void nullify_last_target_wait_ptid ()
 
void stop_all_threads (const char *reason, inferior *inf=nullptr)
 
void prepare_for_detach (void)
 
void fetch_inferior_event ()
 
void init_wait_for_inferior (void)
 
void insert_step_resume_breakpoint_at_sal (struct gdbarch *, struct symtab_and_line, struct frame_id)
 
int stepping_past_instruction_at (struct address_space *aspace, CORE_ADDR address)
 
int thread_is_stepping_over_breakpoint (int thread)
 
int stepping_past_nonsteppable_watchpoint (void)
 
void set_step_info (thread_info *tp, frame_info_ptr frame, struct symtab_and_line sal)
 
void notify_signal_received (gdb_signal sig)
 
void notify_normal_stop (bpstat *bs, int print_frame)
 
void notify_user_selected_context_changed (user_selected_what selection)
 
void print_signal_received_reason (struct ui_out *uiout, enum gdb_signal siggnal)
 
void print_signal_exited_reason (struct ui_out *uiout, enum gdb_signal siggnal)
 
void print_exited_reason (struct ui_out *uiout, int exitstatus)
 
void print_no_history_reason (struct ui_out *uiout)
 
void print_return_value (struct ui_out *uiout, struct return_value_info *rv)
 
void print_stop_event (struct ui_out *uiout, bool displays=true)
 
void print_target_wait_results (ptid_t waiton_ptid, ptid_t result_ptid, const struct target_waitstatus &ws)
 
int signal_stop_state (int)
 
int signal_print_state (int)
 
int signal_pass_state (int)
 
int signal_stop_update (int, int)
 
int signal_print_update (int, int)
 
int signal_pass_update (int, int)
 
void update_signals_program_target (void)
 
void clear_exit_convenience_vars (void)
 
void update_observer_mode (void)
 
void signal_catch_update (const unsigned int *)
 
enum gdb_signal gdb_signal_from_command (int num)
 
void infrun_async (int enable)
 
void mark_infrun_async_event_handler (void)
 
void maybe_remove_breakpoints (void)
 
void all_uis_check_sync_execution_done (void)
 
void all_uis_on_sync_execution_starting (void)
 
void restart_after_all_stop_detach (process_stratum_target *proc_target)
 
void maybe_call_commit_resumed_all_targets ()
 

Variables

bool debug_infrun
 
int stop_on_solib_events
 
bool sched_multi
 
bool step_stop_if_no_debug
 
bool non_stop
 
bool disable_randomization
 
enum exec_direction_kind execution_direction
 
thread_step_over_list global_thread_step_over_list
 

Macro Definition Documentation

◆ infrun_debug_printf

#define infrun_debug_printf ( fmt,
... )    debug_prefixed_printf_cond (debug_infrun, "infrun", fmt, ##__VA_ARGS__)

Definition at line 38 of file infrun.h.

Referenced by bpstat_check_breakpoint_conditions(), clear_proceed_status_thread(), clear_step_over_info(), context_switch(), displaced_step_prepare(), do_target_resume(), do_target_wait(), do_target_wait_1(), fetch_inferior_event(), finish_step_over(), follow_fork(), follow_fork_inferior(), global_thread_step_over_chain_enqueue(), global_thread_step_over_chain_remove(), handle_inferior_event(), handle_jit_event(), handle_no_resumed(), handle_one(), handle_signal_stop(), handle_syscall_event(), handle_vfork_child_exec_or_exit(), handle_vfork_done(), infrun_async(), infrun_debug_show_threads(), insert_exception_resume_breakpoint(), insert_exception_resume_from_probe(), insert_longjmp_resume_breakpoint(), insert_step_resume_breakpoint_at_sal_1(), keep_going_pass_signal(), keep_going_stepped_thread(), process_stratum_target::maybe_add_resumed_with_pending_wait_status(), maybe_call_commit_resumed_all_targets(), process_stratum_target::maybe_remove_resumed_with_pending_wait_status(), maybe_set_commit_resumed_all_targets(), prepare_for_detach(), prepare_to_wait(), print_signal_received_reason(), print_target_wait_results(), proceed(), proceed_after_vfork_done(), proceed_resume_thread_checked(), process_event_stop_test(), random_pending_event_thread(), process_stratum_target::random_resumed_with_pending_wait_status(), scoped_disable_commit_resumed::reset(), restart_stepped_thread(), restart_threads(), resume_1(), save_waitstatus(), scoped_disable_commit_resumed::scoped_disable_commit_resumed(), scoped_enable_commit_resumed::scoped_enable_commit_resumed(), set_step_info(), should_be_inserted(), start_step_over(), stop_all_threads(), stop_waiting(), switch_back_to_stepped_thread(), wait_for_inferior(), and scoped_enable_commit_resumed::~scoped_enable_commit_resumed().

◆ INFRUN_SCOPED_DEBUG_ENTER_EXIT

#define INFRUN_SCOPED_DEBUG_ENTER_EXIT    scoped_debug_enter_exit (debug_infrun, "infrun")

◆ INFRUN_SCOPED_DEBUG_START_END

#define INFRUN_SCOPED_DEBUG_START_END ( fmt,
... )    scoped_debug_start_end (debug_infrun, "infrun", fmt, ##__VA_ARGS__)

Definition at line 43 of file infrun.h.

Referenced by proceed(), restart_threads(), and stop_all_threads().

Enumeration Type Documentation

◆ exec_direction_kind

Enumerator
EXEC_FORWARD 
EXEC_REVERSE 

Definition at line 111 of file infrun.h.

Function Documentation

◆ all_uis_check_sync_execution_done()

void all_uis_check_sync_execution_done ( void )
extern

Definition at line 4293 of file infrun.c.

References check_curr_ui_sync_execution_done(), and SWITCH_THRU_ALL_UIS.

Referenced by fetch_inferior_event(), and step_1().

◆ all_uis_on_sync_execution_starting()

void all_uis_on_sync_execution_starting ( void )
extern

◆ clear_exit_convenience_vars()

void clear_exit_convenience_vars ( void )
extern

Definition at line 9757 of file infrun.c.

References clear_internalvar(), and lookup_internalvar().

Referenced by core_target_open(), and handle_inferior_event().

◆ clear_proceed_status()

void clear_proceed_status ( int step)
extern

◆ fetch_inferior_event()

void fetch_inferior_event ( )
extern

◆ gdb_signal_from_command()

enum gdb_signal gdb_signal_from_command ( int num)

◆ get_last_target_status()

void get_last_target_status ( process_stratum_target ** target,
ptid_t * ptid,
struct target_waitstatus * status )
extern

◆ get_previous_thread()

thread_info * get_previous_thread ( )
extern

Definition at line 175 of file infrun.c.

References previous_thread.

Referenced by info_program_command().

◆ get_stop_id()

ULONGEST get_stop_id ( void )
extern

Definition at line 2842 of file infrun.c.

References current_stop_id.

Referenced by stop_context::changed(), fetch_inferior_event(), and stop_context::stop_context().

◆ infrun_async()

void infrun_async ( int enable)
extern

◆ infrun_debug_show_threads()

template<typename ThreadRange >
static void infrun_debug_show_threads ( const char * title,
ThreadRange threads )
inlinestatic

◆ init_wait_for_inferior()

void init_wait_for_inferior ( void )
extern

◆ insert_step_resume_breakpoint_at_sal()

void insert_step_resume_breakpoint_at_sal ( struct gdbarch * gdbarch,
struct symtab_and_line sr_sal,
struct frame_id sr_id )
extern

◆ mark_infrun_async_event_handler()

void mark_infrun_async_event_handler ( void )
extern

Definition at line 139 of file infrun.c.

References infrun_async_inferior_event_token, and mark_async_event_handler().

Referenced by attach_command(), and prepare_to_wait().

◆ maybe_call_commit_resumed_all_targets()

void maybe_call_commit_resumed_all_targets ( )
extern

◆ maybe_remove_breakpoints()

void maybe_remove_breakpoints ( void )
extern

◆ normal_stop()

bool normal_stop ( )
extern

◆ notify_normal_stop()

void notify_normal_stop ( bpstat * bs,
int print_frame )
extern

◆ notify_signal_received()

void notify_signal_received ( gdb_signal sig)
extern

◆ notify_user_selected_context_changed()

void notify_user_selected_context_changed ( user_selected_what selection)
extern

◆ nullify_last_target_wait_ptid()

void nullify_last_target_wait_ptid ( )
extern

◆ prepare_for_detach()

void prepare_for_detach ( void )
extern

◆ print_exited_reason()

void print_exited_reason ( struct ui_out * uiout,
int exitstatus )
extern

◆ print_no_history_reason()

void print_no_history_reason ( struct ui_out * uiout)
extern

◆ print_return_value()

void print_return_value ( struct ui_out * uiout,
struct return_value_info * rv )
extern

◆ print_signal_exited_reason()

void print_signal_exited_reason ( struct ui_out * uiout,
enum gdb_signal siggnal )
extern

◆ print_signal_received_reason()

void print_signal_received_reason ( struct ui_out * uiout,
enum gdb_signal siggnal )
extern

◆ print_stop_event()

void print_stop_event ( struct ui_out * uiout,
bool displays = true )
extern

◆ print_target_wait_results()

void print_target_wait_results ( ptid_t waiton_ptid,
ptid_t result_ptid,
const struct target_waitstatus & ws )
extern

◆ proceed()

void proceed ( CORE_ADDR addr,
enum gdb_signal )
extern

Definition at line 3395 of file infrun.c.

References all_non_exited_threads(), annotate_starting(), reg_buffer::arch(), regcache::aspace(), breakpoint_here_p(), check_multi_target_resumption(), thread_info::control, EXEC_REVERSE, execution_direction, follow_fork(), gdb_flush(), gdb_stdout, gdbarch_single_step_through_delay(), gdbarch_single_step_through_delay_p(), get_current_frame(), get_current_regcache(), global_thread_step_over_chain_enqueue(), thread_control_state::in_infcall, INF_EXEC_COMPLETE, target_terminal::inferior(), inferior_event_handler(), inferior_thread(), infrun_async_inferior_event_token, infrun_debug_printf, INFRUN_SCOPED_DEBUG_ENTER_EXIT, INFRUN_SCOPED_DEBUG_START_END, init_thread_stepping_state(), mark_async_event_handler(), non_stop, normal_stop(), ordinary_breakpoint_here, paddress(), thread_info::prev_pc, proceed_resume_thread_checked(), thread_info::ptid, reg_buffer::regcache, regcache_read_pc_protected(), regcache_write_pc(), scoped_disable_commit_resumed::reset_and_commit(), schedlock_applies(), set_running(), thread_info::set_stop_signal(), start_step_over(), step_over_info_valid_p(), thread_control_state::stepping_command, thread_info::stepping_over_breakpoint, thread_info::stop_pc(), thread_info::stop_pc_p(), switch_to_thread(), switch_to_thread_no_regs(), target_can_async_p(), target_is_non_stop_p(), thread_is_in_step_over_chain(), thread_still_needs_step_over(), update_previous_thread(), user_visible_resume_ptid(), and user_visible_resume_target().

Referenced by attach_post_wait(), continue_1(), finish_backward(), finish_command(), finish_forward(), jump_command(), proceed_after_attach(), proceed_after_vfork_done(), proceed_thread(), proceed_thread_callback(), run_command_1(), run_inferior_call(), signal_command(), step_1(), until_break_command(), and until_next_command().

◆ restart_after_all_stop_detach()

void restart_after_all_stop_detach ( process_stratum_target * proc_target)
extern

◆ set_last_target_status()

void set_last_target_status ( process_stratum_target * target,
ptid_t ptid,
const target_waitstatus & status )
extern

◆ set_step_info()

void set_step_info ( thread_info * tp,
frame_info_ptr frame,
struct symtab_and_line sal )
extern

◆ signal_catch_update()

void signal_catch_update ( const unsigned int * info)
extern

◆ signal_pass_state()

int signal_pass_state ( int signo)
extern

◆ signal_pass_update()

int signal_pass_update ( int signo,
int state )
extern

Definition at line 9140 of file infrun.c.

References signal_cache_update(), and signal_program.

Referenced by nto_initialize_signals().

◆ signal_print_state()

int signal_print_state ( int signo)
extern

Definition at line 9091 of file infrun.c.

References signal_print.

Referenced by remote_target::print_one_stopped_thread().

◆ signal_print_update()

int signal_print_update ( int signo,
int state )
extern

Definition at line 9130 of file infrun.c.

References signal_cache_update(), and signal_print.

Referenced by check_thread_signals(), and nto_initialize_signals().

◆ signal_stop_state()

int signal_stop_state ( int signo)
extern

Definition at line 9085 of file infrun.c.

References signal_stop.

Referenced by handle_signal_stop().

◆ signal_stop_update()

int signal_stop_update ( int signo,
int state )
extern

Definition at line 9120 of file infrun.c.

References signal_cache_update(), and signal_stop.

Referenced by check_thread_signals(), and nto_initialize_signals().

◆ start_remote()

void start_remote ( int from_tty)
extern

◆ stepping_past_instruction_at()

int stepping_past_instruction_at ( struct address_space * aspace,
CORE_ADDR address )
extern

◆ stepping_past_nonsteppable_watchpoint()

int stepping_past_nonsteppable_watchpoint ( void )
extern

Definition at line 1507 of file infrun.c.

References step_over_info::nonsteppable_watchpoint_p.

Referenced by should_be_inserted(), and step_over_info_valid_p().

◆ stop_all_threads()

void stop_all_threads ( const char * reason,
inferior * inf = nullptr )
extern

◆ thread_is_stepping_over_breakpoint()

int thread_is_stepping_over_breakpoint ( int thread)
extern

Definition at line 1498 of file infrun.c.

References step_over_info::thread.

Referenced by should_be_inserted().

◆ update_observer_mode()

void update_observer_mode ( void )
extern

◆ update_previous_thread()

void update_previous_thread ( )
extern

◆ update_signals_program_target()

void update_signals_program_target ( void )
extern

Definition at line 360 of file infrun.c.

References signal_program, and target_program_signals().

Referenced by remote_target::start_remote_1().

◆ user_visible_resume_ptid()

ptid_t user_visible_resume_ptid ( int step)
extern

◆ user_visible_resume_target()

process_stratum_target * user_visible_resume_target ( ptid_t resume_ptid)
extern

Variable Documentation

◆ debug_infrun

bool debug_infrun
extern

◆ disable_randomization

bool disable_randomization
extern

◆ execution_direction

enum exec_direction_kind execution_direction
extern

◆ global_thread_step_over_list

thread_step_over_list global_thread_step_over_list
extern

◆ non_stop

bool non_stop
extern

◆ sched_multi

bool sched_multi
extern

◆ step_stop_if_no_debug

bool step_stop_if_no_debug
extern

Definition at line 147 of file infrun.c.

Referenced by prepare_one_step(), and process_event_stop_test().

◆ stop_on_solib_events

int stop_on_solib_events
extern