Convert generic probe interface to C++ (and perform some cleanups)
[external/binutils.git] / gdb / ChangeLog
index 5dccc13..2121e3e 100644 (file)
@@ -1,3 +1,207 @@
+2017-11-22  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+       * break-catch-throw.c (fetch_probe_arguments): Use
+       'probe.prob' instead of 'probe.probe'.
+       * breakpoint.c (create_longjmp_master_breakpoint): Call
+       'can_evaluate_arguments' and 'get_relocated_address' methods
+       from probe.
+       (create_exception_master_breakpoint): Likewise.
+       (add_location_to_breakpoint): Use 'sal->prob' instead of
+       'sal->probe'.
+       (bkpt_probe_insert_location): Call 'set_semaphore' method from
+       probe.
+       (bkpt_probe_remove_location): Likewise, for 'clear_semaphore'.
+       * elfread.c (elf_get_probes): Use 'static_probe_ops' instead
+       of 'probe_ops'.
+       (probe_key_free): Call 'delete' on probe.
+       (check_exception_resume): Use 'probe.prob' instead of
+       'probe.probe'.
+       * location.c (string_to_event_location_basic): Call
+       'probe_linespec_to_static_ops'.
+       * probe.c (class any_static_probe_ops): New class.
+       (any_static_probe_ops any_static_probe_ops): New variable.
+       (parse_probes_in_pspace): Receive 'static_probe_ops' as
+       argument.  Adjust code to reflect change.
+       (parse_probes): Use 'static_probe_ops' instead of
+       'probe_ops'.  Adjust code to reflect change.
+       (find_probes_in_objfile): Call methods to get name and
+       provider from probe.
+       (find_probe_by_pc): Use 'result.prob' instead of
+       'result.probe'.  Call 'get_relocated_address' method from
+       probe.
+       (collect_probes): Adjust comment and argument list to receive
+       'static_probe_ops' instead of 'probe_ops'.  Adjust code to
+       reflect change.  Call necessary methods from probe.
+       (compare_probes): Call methods to get name and provider from
+       probes.
+       (gen_ui_out_table_header_info): Receive 'static_probe_ops'
+       instead of 'probe_ops'.  Use 'std::vector' instead of VEC,
+       adjust code accordingly.
+       (print_ui_out_not_applicables): Likewise.
+       (info_probes_for_ops): Rename to...
+       (info_probes_for_spops): ...this.  Receive 'static_probe_ops'
+       as argument instead of 'probe_ops'.  Adjust code.  Call
+       necessary methods from probe.
+       (info_probes_command): Use 'info_probes_for_spops'.
+       (enable_probes_command): Pass correct argument to
+       'collect_probes'.  Call methods from probe.
+       (disable_probes_command): Likewise.
+       (get_probe_address): Move to 'any_static_probe_ops::get_address'.
+       (get_probe_argument_count): Move to
+       'any_static_probe_ops::get_argument_count'.
+       (can_evaluate_probe_arguments): Move to
+       'any_static_probe_ops::can_evaluate_arguments'.
+       (evaluate_probe_argument): Move to
+       'any_static_probe_ops::evaluate_argument'.
+       (probe_safe_evaluate_at_pc): Use 'probe.prob' instead of
+       'probe.probe'.
+       (probe_linespec_to_ops): Rename to...
+       (probe_linespec_to_static_ops): ...this.  Adjust code.
+       (probe_any_is_linespec): Rename to...
+       (any_static_probe_ops::is_linespec): ...this.
+       (probe_any_get_probes): Rename to...
+       (any_static_probe_ops::get_probes): ...this.
+       (any_static_probe_ops::type_name): New method.
+       (any_static_probe_ops::gen_info_probes_table_header): New
+       method.
+       (compute_probe_arg): Use 'pc_probe.prob' instead of
+       'pc_probe.probe'.  Call methods from probe.
+       (compile_probe_arg): Likewise.
+       (std::vector<const probe_ops *> all_probe_ops): Delete.
+       (std::vector<const static_probe_ops *> all_static_probe_ops):
+       New variable.
+       (_initialize_probe): Use 'all_static_probe_ops' instead of
+       'all_probe_ops'.
+       * probe.h (struct info_probe_column) <field_name>: Delete
+       extraneous newline
+       (info_probe_column_s): Delete type and VEC.
+       (struct probe_ops): Delete.  Replace with...
+       (class static_probe_ops): ...this and...
+       (clas probe): ...this.
+       (struct bound_probe) <bound_probe>: Delete extraneous
+       newline.  Adjust constructor to receive 'probe' instead of
+       'struct probe'.
+       <probe>: Rename to...
+       <prob>: ...this.  Delete extraneous newline.
+       <objfile>: Delete extraneous newline.
+       (register_probe_ops): Delete unused prototype.
+       (info_probes_for_ops): Rename to...
+       (info_probes_for_spops): ...this.  Adjust comment.
+       (get_probe_address): Move to 'probe::get_address'.
+       (get_probe_argument_count): Move to
+       'probe::get_argument_count'.
+       (can_evaluate_probe_arguments): Move to
+       'probe::can_evaluate_arguments'.
+       (evaluate_probe_argument): Move to 'probe::evaluate_argument'.
+       * solib-svr4.c (struct svr4_info): Adjust comment.
+       (struct probe_and_action) <probe>: Rename to...
+       <prob>: ...this.
+       (register_solib_event_probe): Receive 'probe' instead of
+       'struct probe' as argument.  Use 'prob' instead of 'probe'
+       when applicable.
+       (solib_event_probe_action): Call 'get_argument_count' method
+       from probe.  Adjust comment.
+       (svr4_handle_solib_event): Adjust comment.  Call
+       'evaluate_argument' method from probe.
+       (svr4_create_probe_breakpoints): Call 'get_relocated_address'
+       from probe.
+       (svr4_create_solib_event_breakpoints): Use 'probe' instead of
+       'struct probe'.  Call 'can_evaluate_arguments' from probe.
+       * symfile.h: Forward declare 'class probe' instead of 'struct
+       probe'.
+       * symtab.h: Likewise.
+       (struct symtab_and_line) <probe>: Rename to...
+       <prob>: ...this.
+       * tracepoint.c (start_tracing): Use 'prob' when applicable.
+       Call probe methods.
+       (stop_tracing): Likewise.
+
+2017-11-22  Joel Brobecker  <brobecker@adacore.com>
+
+       * ravenscar-thread.c (ravenscar_inferior_created): Remove
+       trailing newline at end of string in call to warning.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * osdata.h: Include vector isntead of vec.h.
+       (osdata_column_s): Remove typedef.
+       (struct osdata_column): Add constructor.
+       <name, value>: Change type to std::string.
+       (DEF_VEC_O (osdata_column_s)): Remove.
+       (osdata_item_s): Remove typedef.
+       (struct osdata_item) <columns>: Change type to std::vector.
+       (DEF_VEC_O (osdata_item_s)): Remove.
+       (struct osdata): Add constructor.
+       <type>: Change type to std::string.
+       <items>: Change type to std::vector.
+       (osdata_p): Remove typedef.
+       (DEF_VEC_P (osdata_p)): Remove.
+       (osdata_parse): Return a unique_ptr.
+       (osdata_free): Remove.
+       (make_cleanup_osdata_free): Remove.
+       (get_osdata): Return a unique_ptr.
+       (get_osdata_column): Return pointer to std::string, take a
+       reference to osdata_item as parameter.
+       * osdata.c (struct osdata_parsing_data) <osdata>: Change type to
+       unique_ptr.
+       <property_name>: Change type to std::string.
+       (osdata_start_osdata): Allocate osdata with new and adjust.
+       (osdata_start_item): Adjust.
+       (osdata_start_column): Adjust.
+       (osdata_end_column): Adjust.
+       (clear_parsing_data): Remove.
+       (osdata_parse): Return a unique_ptr and adjust, remove cleanup.
+       (osdata_item_clear): Remove.
+       (get_osdata): return a unique_ptr and adjust.
+       (get_osdata_column): Return a pointer to std::string and adjust.
+       (info_osdata): Adjust.
+       * mi/mi-main.c: Include <map>.
+       (free_vector_of_osdata_items): Remove.
+       (list_available_thread_groups): Adjust, use std::map instead of
+       splay tree.
+
+2017-11-22  Simon Marchi  <simon.marchi@ericsson.com>
+
+       * stack.c (iterate_over_block_locals): Add LOC_OPTIMIZED_OUT
+       case in switch.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * varobj.h (DEF_VEC_P (varobj_p)): Remove.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * varobj.h (struct varobj_update_result): Add constructor, add
+       move constructor, disable copy and assign, initialize fields.
+       <newobj>: Change type to std::vector.
+       (varobj_update): Return std::vector.
+       * varobj.c (install_dynamic_child): Change VEC parameters to
+       std::vector and adjust.
+       (update_dynamic_varobj_children): Likewise.
+       (varobj_update): Return std::vector and adjust.
+       * mi/mi-cmd-var.c (varobj_update_one): Adjust to vector changes.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * varobj.h (struct varobj) <parent>: Remove const.
+       <children>: Change type to std::vector.
+       (varobj_list_children): Return std::vector const reference.
+       (varobj_restrict_range): Change parameter type to std::vector
+       const reference.
+       * varobj.c (varobj_has_more): Adjust.
+       (varobj_restrict_range): Change parameter type to std::vector
+       const reference and adjust.
+       (install_dynamic_child): Adjust.
+       (update_dynamic_varobj_children): Adjust.
+       (varobj_list_children): Return std::vector const reference and
+       adjust.
+       (varobj_add_child): Adjust.
+       (update_type_if_necessary): Adjust.
+       (varobj_update): Adjust.
+       (delete_variable_1): Adjust.
+       * ada-varobj.c (ada_value_has_mutated): Adjust.
+       * mi/mi-cmd-var.c (mi_cmd_var_list_children): Adjust.
+
 2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * varobj.h (struct varobj): Add constructor and destructor,