GDBserver

Classes | Macros | Enumerations | Functions | Variables
tracepoint.h File Reference

Go to the source code of this file.

## Classes
struct | fast_tpoint_collect_status

## Macros
#define | IPA_BUFSIZ 100
#define | ATTR_USED
#define | ATTR_NOINLINE
#define | EXPORTED_SYMBOL
#define | IP_AGENT_EXPORT_FUNC
#define | IP_AGENT_EXPORT_VAR
#define | IP_AGENT_EXPORT_VAR_DECL extern

## Enumerations
enum | fast_tpoint_collect_result { fast_tpoint_collect_result::not_collecting, fast_tpoint_collect_result::before_insn, fast_tpoint_collect_result::at_insn }

## Functions
void | initialize_tracepoint (void)
void | tracepoint_look_up_symbols (void)
void | stop_tracing (void)
int | handle_tracepoint_general_set (char *own_buf)
int | handle_tracepoint_query (char *own_buf)
int | tracepoint_finished_step (struct thread_info *tinfo, CORE_ADDR stop_pc)
int | tracepoint_was_hit (struct thread_info *tinfo, CORE_ADDR stop_pc)
void | release_while_stepping_state_list (struct thread_info *tinfo)
int | in_readonly_region (CORE_ADDR addr, ULONGEST length)
int | traceframe_read_mem (int tfnum, CORE_ADDR addr, unsigned char *buf, ULONGEST length, ULONGEST *nbytes)
int | fetch_traceframe_registers (int tfnum, struct regcache *regcache, int regnum)
int | traceframe_read_sdata (int tfnum, ULONGEST offset, unsigned char *buf, ULONGEST length, ULONGEST *nbytes)
int | traceframe_read_info (int tfnum, struct buffer *buffer)
fast_tpoint_collect_result | fast_tracepoint_collecting (CORE_ADDR thread_area, CORE_ADDR stop_pc, struct fast_tpoint_collect_status *status)
void | force_unlock_trace_buffer (void)
int | handle_tracepoint_bkpts (struct thread_info *tinfo, CORE_ADDR stop_pc)
int | claim_trampoline_space (ULONGEST used, CORE_ADDR *trampoline)
int | have_fast_tracepoint_trampoline_buffer (char *msgbuf)
void | gdb_agent_about_to_close (int pid)
int | agent_mem_read (struct eval_agent_expr_context *ctx, unsigned char *to, CORE_ADDR from, ULONGEST len)
LONGEST | agent_get_trace_state_variable_value (int num)
void | agent_set_trace_state_variable_value (int num, LONGEST val)
int | agent_tsv_read (struct eval_agent_expr_context *ctx, int n)
int | agent_mem_read_string (struct eval_agent_expr_context *ctx, unsigned char *to, CORE_ADDR from, ULONGEST len)
ULONGEST | get_raw_reg (const unsigned char *raw_regs, int regnum)
CORE_ADDR | get_raw_reg_func_addr (void)
CORE_ADDR | get_get_tsv_func_addr (void)
CORE_ADDR | get_set_tsv_func_addr (void)

## Variables
IP_AGENT_EXPORT_VAR_DECL int | tracing
int | disconnected_tracing
int | current_traceframe

## Macro Definition Documentation

## ◆ ATTR_NOINLINE

#define ATTR_NOINLINE

Definition at line 33 of file tracepoint.h.

## ◆ ATTR_USED

#define ATTR_USED

Definition at line 32 of file tracepoint.h.

## ◆ EXPORTED_SYMBOL

#define EXPORTED_SYMBOL

Definition at line 44 of file tracepoint.h.

## ◆ IP_AGENT_EXPORT_FUNC

#define IP_AGENT_EXPORT_FUNC

Definition at line 65 of file tracepoint.h.

## ◆ IP_AGENT_EXPORT_VAR

#define IP_AGENT_EXPORT_VAR

Definition at line 66 of file tracepoint.h.

## ◆ IP_AGENT_EXPORT_VAR_DECL

#define IP_AGENT_EXPORT_VAR_DECL extern

Definition at line 67 of file tracepoint.h.

## ◆ IPA_BUFSIZ

#define IPA_BUFSIZ 100

Definition at line 24 of file tracepoint.h.

Referenced by initialize_fast_tracepoint_trampoline_buffer(), initialize_tracepoint(), and x86_get_min_fast_tracepoint_insn_len().

## Enumeration Type Documentation

## ◆ fast_tpoint_collect_result

enum fast_tpoint_collect_result
| strong

Enumerator
not_collecting |
before_insn |
at_insn |

Definition at line 121 of file tracepoint.h.

## Function Documentation

## ◆ agent_get_trace_state_variable_value()

LONGEST agent_get_trace_state_variable_value | ( | int | num | ) |

Definition at line 2140 of file tracepoint.c.

References get_trace_state_variable_value().

Referenced by gdb_eval_agent_expr().

## ◆ agent_mem_read()

int agent_mem_read | ( | struct eval_agent_expr_context * | ctx,
|  | unsigned char * | to,
|  | CORE_ADDR | from,
|  | ULONGEST | len
| ) |  |

Definition at line 4940 of file tracepoint.c.

References add_traceframe_block(), read_inferior_memory(), sp, eval_agent_expr_context::tframe, eval_agent_expr_context::tpoint, and trace_debug.

Referenced by do_action_at_tracepoint(), and gdb_eval_agent_expr().

## ◆ agent_mem_read_string()

int agent_mem_read_string | ( | struct eval_agent_expr_context * | ctx,
|  | unsigned char * | to,
|  | CORE_ADDR | from,
|  | ULONGEST | len
| ) |  |

Definition at line 4982 of file tracepoint.c.

References add_traceframe_block(), read_inferior_memory(), sp, eval_agent_expr_context::tframe, eval_agent_expr_context::tpoint, xfree(), and xmalloc().

Referenced by gdb_eval_agent_expr().

## ◆ agent_set_trace_state_variable_value()

void agent_set_trace_state_variable_value | ( | int | num,
|  | LONGEST | val
| ) |  |

Definition at line 2146 of file tracepoint.c.

References set_trace_state_variable_value().

Referenced by gdb_eval_agent_expr().

## ◆ agent_tsv_read()

int agent_tsv_read | ( | struct eval_agent_expr_context * | ctx,
|  | int | n
| ) |  |

Definition at line 5044 of file tracepoint.c.

References add_traceframe_block(), get_trace_state_variable_value(), eval_agent_expr_context::tframe, eval_agent_expr_context::tpoint, and trace_debug.

Referenced by gdb_eval_agent_expr().

## ◆ claim_trampoline_space()

int claim_trampoline_space | ( | ULONGEST | used,
|  | CORE_ADDR * | trampoline
| ) |  |

Definition at line 2952 of file tracepoint.c.

References ipa_sym_addresses::addr_gdb_trampoline_buffer, ipa_sym_addresses::addr_gdb_trampoline_buffer_end, internal_error(), ipa_sym_addrs, paddress(), pulongest(), read_inferior_data_pointer(), trace_debug, trampoline_buffer_head, and trampoline_buffer_tail.

Referenced by i386_install_fast_tracepoint_jump_pad().

## ◆ fast_tracepoint_collecting()

fast_tpoint_collect_result fast_tracepoint_collecting | ( | CORE_ADDR | thread_area,
|  | CORE_ADDR | stop_pc,
|  | struct fast_tpoint_collect_status * | status
| ) |  |

Definition at line 5571 of file tracepoint.c.

References ipa_sym_addresses::addr_collecting, ipa_sym_addresses::addr_gdb_jump_pad_buffer, ipa_sym_addresses::addr_gdb_jump_pad_buffer_end, ipa_sym_addresses::addr_gdb_trampoline_buffer, ipa_sym_addresses::addr_gdb_trampoline_buffer_end, tracepoint::address, fast_tpoint_collect_status::adjusted_insn_addr, tracepoint::adjusted_insn_addr, fast_tpoint_collect_status::adjusted_insn_addr_end, tracepoint::adjusted_insn_addr_end, at_insn, before_insn, fast_tracepoint_from_ipa_tpoint_address(), fast_tracepoint_from_jump_pad_address(), fast_tracepoint_from_trampoline_address(), internal_error(), ipa_sym_addrs, tracepoint::jump_pad, tracepoint::jump_pad_end, not_collecting, tracepoint::number, paddress(), read_inferior_data_pointer(), read_inferior_memory(), fast_tpoint_collect_status::tpoint_addr, fast_tpoint_collect_status::tpoint_num, trace_debug, tracepoint::trampoline, tracepoint::trampoline_end, and warning().

Referenced by linux_fast_tracepoint_collecting().

## ◆ fetch_traceframe_registers()

int fetch_traceframe_registers | ( | int | tfnum,
|  | struct regcache * | regcache,
|  | int | regnum
| ) |  |

Definition at line 5185 of file tracepoint.c.

References tracepoint::address, find_next_tracepoint_by_number(), find_traceframe(), regcache_write_pc(), supply_regblock(), traceframe::tpnum, trace_debug, and traceframe_find_regblock().

Referenced by process_serial_event().

## ◆ force_unlock_trace_buffer()

void force_unlock_trace_buffer | ( | void |  | ) |

Definition at line 5555 of file tracepoint.c.

References ipa_sym_addresses::addr_collecting, ipa_sym_addrs, and write_inferior_data_pointer().

Referenced by maybe_move_out_of_jump_pad().

## ◆ gdb_agent_about_to_close()

void gdb_agent_about_to_close | ( | int | pid | ) |

Definition at line 3960 of file tracepoint.c.

References current_thread, find_any_thread_of_pid(), IPA_CMD_BUF_SIZE, maybe_write_ipa_not_loaded(), and run_inferior_command().

Referenced by kill_inferior().

## ◆ get_get_tsv_func_addr()

CORE_ADDR get_get_tsv_func_addr | ( | void |  | ) |

Definition at line 5895 of file tracepoint.c.

References ipa_sym_addresses::addr_get_trace_state_variable_value_ptr, error(), ipa_sym_addrs, and read_inferior_data_pointer().

Referenced by compile_bytecodes().

## ◆ get_raw_reg()

ULONGEST get_raw_reg | ( | const unsigned char * | raw_regs,
|  | int | regnum
| ) |  |

Definition at line 139 of file linux-aarch64-ipa.c.

References aarch64_ft_collect_regmap, AARCH64_NUM_FT_COLLECT_GREGS, FT_ACR, FT_CR_SIZE, FT_FPC, FT_GPR, FT_PSWA, FT_PSWA_L, FT_PSWM, FT_PSWM_U, FT_VR, I386_CS_REGNUM, i386_ft_collect_regmap, I386_GS_REGNUM, i386_num_regs, offset, ppc_ft_collect_regmap, PPC_NUM_FT_COLLECT_GREGS, s390_regmap, s390_regnum, x86_64_ft_collect_regmap, and X86_64_NUM_FT_COLLECT_GREGS.

## ◆ get_raw_reg_func_addr()

CORE_ADDR get_raw_reg_func_addr | ( | void |  | ) |

Definition at line 5883 of file tracepoint.c.

References ipa_sym_addresses::addr_get_raw_reg_ptr, error(), ipa_sym_addrs, and read_inferior_data_pointer().

Referenced by aarch64_emit_reg(), i386_emit_reg(), ppc_emit_reg(), and s390_emit_reg().

## ◆ get_set_tsv_func_addr()

CORE_ADDR get_set_tsv_func_addr | ( | void |  | ) |

Definition at line 5908 of file tracepoint.c.

References ipa_sym_addresses::addr_set_trace_state_variable_value_ptr, error(), ipa_sym_addrs, and read_inferior_data_pointer().

Referenced by compile_bytecodes().

## ◆ handle_tracepoint_bkpts()

int handle_tracepoint_bkpts | ( | struct thread_info * | tinfo,
|  | CORE_ADDR | stop_pc
| ) |  |

Definition at line 4472 of file tracepoint.c.

References ipa_sym_addresses::addr_error_tracepoint, ipa_sym_addresses::addr_expr_eval_result, ipa_sym_addresses::addr_flush_trace_buffer, ipa_sym_addresses::addr_stop_tracing, ipa_sym_addresses::addr_stopping_tracepoint, ipa_sym_addresses::addr_trace_buffer_is_full, agent_loaded_p(), debug_threads, error_tracepoint, expr_eval_no_error, expr_eval_result, fast_tracepoint_from_ipa_tpoint_address(), ipa_sym_addrs, paddress(), read_inferior_data_pointer(), read_inferior_integer(), stop_tracing(), stopping_tracepoint, trace_debug, upload_fast_traceframes(), write_inferior_data_pointer(), and write_inferior_integer().

Referenced by handle_tracepoints().

## ◆ handle_tracepoint_general_set()

int handle_tracepoint_general_set | ( | char * | own_buf | ) |

Definition at line 4157 of file tracepoint.c.

References cmd_bigqtbuffer_circular(), cmd_bigqtbuffer_size(), cmd_qtdisconnected(), cmd_qtdp(), cmd_qtdpsrc(), cmd_qtdv(), cmd_qtenable_disable(), cmd_qtframe(), cmd_qtinit(), cmd_qtnotes(), cmd_qtro(), cmd_qtstart(), cmd_qtstop(), and startswith().

Referenced by handle_general_set().

## ◆ handle_tracepoint_query()

int handle_tracepoint_query | ( | char * | own_buf | ) |

Definition at line 4234 of file tracepoint.c.

References cmd_qtbuffer(), cmd_qtfp(), cmd_qtfstm(), cmd_qtfv(), cmd_qtminftpilen(), cmd_qtp(), cmd_qtsp(), cmd_qtsstm(), cmd_qtstatus(), cmd_qtstmat(), cmd_qtsv(), cmd_qtv(), and startswith().

Referenced by handle_query().

## ◆ have_fast_tracepoint_trampoline_buffer()

int have_fast_tracepoint_trampoline_buffer | ( | char * | msgbuf | ) |

Definition at line 2995 of file tracepoint.c.

References ipa_sym_addresses::addr_gdb_trampoline_buffer_end, ipa_sym_addresses::addr_gdb_trampoline_buffer_error, internal_error(), ipa_sym_addrs, read_inferior_data_pointer(), and read_inferior_memory().

Referenced by x86_get_min_fast_tracepoint_insn_len().

## ◆ in_readonly_region()

int in_readonly_region | ( | CORE_ADDR | addr,
|  | ULONGEST | length
| ) |  |

Definition at line 2903 of file tracepoint.c.

References readonly_region::end, readonly_region::next, readonly_regions, and readonly_region::start.

Referenced by gdb_read_memory().

## ◆ initialize_tracepoint()

void initialize_tracepoint | ( | void |  | ) |

Definition at line 7406 of file tracepoint.c.

References alloc_jump_pad_buffer(), create_trace_state_variable(), DEFAULT_TRACE_BUFFER_SIZE, get_timestamp(), init_trace_buffer(), initialize_low_tracepoint(), IPA_BUFSIZ, perror_with_name(), set_trace_state_variable_getter(), set_trace_state_variable_name(), and xmalloc().

Referenced by captured_main().

## ◆ release_while_stepping_state_list()

void release_while_stepping_state_list | ( | struct thread_info * | tinfo | ) |

Definition at line 4349 of file tracepoint.c.

References wstep_state::next, release_while_stepping_state(), and thread_info::while_stepping.

Referenced by linux_resume_one_lwp_throw(), and tracepoint_finished_step().

## ◆ stop_tracing()

void stop_tracing | ( | void |  | ) |

Definition at line 3413 of file tracepoint.c.

References ipa_sym_addresses::addr_tracing, agent_loaded_p(), clear_installed_tracepoints(), delete_breakpoint(), error_tracepoint, eval_result_names, expr_eval_no_error, expr_eval_result, flush_trace_buffer_bkpt, gdb_connected(), get_timestamp(), internal_error(), ipa_sym_addrs, tracepoint::number, tracepoint::pass_count, pause_all, stop_tracing_bkpt, stopping_tracepoint, trace_buffer_is_full, trace_debug, tracing, tracing_stop_reason, tracing_stop_time, tracing_stop_tpnum, unpause_all, upload_fast_traceframes(), and write_inferior_integer().

Referenced by captured_main(), cmd_qtinit(), cmd_qtstop(), handle_detach(), handle_tracepoint_bkpts(), tracepoint_finished_step(), tracepoint_was_hit(), and upload_fast_traceframes().

## ◆ traceframe_read_info()

int traceframe_read_info | ( | int | tfnum,
|  | struct buffer * | buffer
| ) |  |

Definition at line 5462 of file tracepoint.c.

References buffer_grow_str, buffer_grow_str0, build_traceframe_info_xml(), traceframe::data, traceframe::data_size, find_traceframe(), trace_debug, and traceframe_walk_blocks().

Referenced by handle_qxfer_traceframe_info().

## ◆ traceframe_read_mem()

int traceframe_read_mem | ( | int | tfnum,
|  | CORE_ADDR | addr,
|  | unsigned char * | buf,
|  | ULONGEST | length,
|  | ULONGEST * | nbytes
| ) |  |

Definition at line 5236 of file tracepoint.c.

References traceframe::data, traceframe::data_size, find_traceframe(), paddress(), trace_debug, and traceframe_find_block_type().

Referenced by gdb_read_memory().

## ◆ traceframe_read_sdata()

int traceframe_read_sdata | ( | int | tfnum,
|  | ULONGEST | offset,
|  | unsigned char * | buf,
|  | ULONGEST | length,
|  | ULONGEST * | nbytes
| ) |  |

Definition at line 5361 of file tracepoint.c.

References traceframe::data, traceframe::data_size, find_traceframe(), offset, trace_debug, and traceframe_find_block_type().

Referenced by handle_qxfer_statictrace().

## ◆ tracepoint_finished_step()

int tracepoint_finished_step | ( | struct thread_info * | tinfo,
|  | CORE_ADDR | stop_pc
| ) |  |

Definition at line 4367 of file tracepoint.c.

References agent_loaded_p(), trap_tracepoint_ctx::base, collect_data_at_step(), wstep_state::current_step, expr_eval_no_error, expr_eval_result, find_tracepoint(), get_thread_regcache(), tracepoint::hit_count, thread_info::id, wstep_state::next, paddress(), tracepoint::pass_count, trap_tracepoint_ctx::regcache, release_while_stepping_state(), release_while_stepping_state_list(), tracepoint::step_count, stop_tracing(), stopping_tracepoint, target_pid_to_str(), wstep_state::tp_address, wstep_state::tp_number, trace_buffer_is_full, trace_debug, tracing, trap_tracepoint, tracepoint_hit_ctx::type, upload_fast_traceframes(), and thread_info::while_stepping.

Referenced by handle_tracepoints().

## ◆ tracepoint_look_up_symbols()

void tracepoint_look_up_symbols | ( | void |  | ) |

Definition at line 314 of file tracepoint.c.

References agent_loaded_p(), agent_look_up_symbols(), debug_printf(), debug_threads, ipa_sym_addrs, look_up_one_symbol(), name, and symbol_list.

Referenced by handle_query().

## ◆ tracepoint_was_hit()

int tracepoint_was_hit | ( | struct thread_info * | tinfo,
|  | CORE_ADDR | stop_pc
| ) |  |

Definition at line 4554 of file tracepoint.c.

References add_while_stepping_state(), tracepoint::address, trap_tracepoint_ctx::base, collect_data_at_tracepoint(), tracepoint::cond, condition_true_at_tracepoint(), tracepoint::enabled, expr_eval_no_error, expr_eval_result, get_thread_regcache(), thread_info::id, tracepoint::next, tracepoint::number, paddress(), trap_tracepoint_ctx::regcache, static_tracepoint, tracepoint::step_count, stop_tracing(), stopping_tracepoint, target_pid_to_str(), trace_buffer_is_full, trace_debug, tracepoints, tracing, trap_tracepoint, tracepoint::type, and tracepoint_hit_ctx::type.

Referenced by handle_tracepoints().

## Variable Documentation

## ◆ current_traceframe

int current_traceframe

Definition at line 979 of file tracepoint.c.

Referenced by captured_main(), cmd_qtframe(), cmd_qtinit(), cmd_qtv(), find_next_traceframe_by_tracepoint(), find_next_traceframe_in_range(), gdb_read_memory(), gdb_write_memory(), handle_qxfer_statictrace(), handle_qxfer_traceframe_info(), process_serial_event(), and traceframe_read_tsv().

## ◆ disconnected_tracing

int disconnected_tracing

Definition at line 1251 of file tracepoint.c.

Referenced by captured_main(), cmd_qtdisconnected(), cmd_qtstatus(), and handle_detach().

## ◆ tracing

IP_AGENT_EXPORT_VAR_DECL int tracing

Definition at line 70 of file tracepoint.h.