Age | Commit message (Collapse) | Author | Files | Lines |
|
value specially.
testsuite/
* gdb.base/watchpoint.exp: Call test_inaccessible_watchpoint
before disabling hardware watchpoints.
(test_inaccessible_watchpoint): Check that hardware watchpoints
are used. Test for watchpoints on a constant address.
|
|
* breakpoint.c (save_breakpoints): Use RETURN_MASK_ALL.
* cli-out.c: Include vec.h.
(cli_field_fmt, cli_spaces, cli_text, cli_message, cli_flush): New
variable stream, initialize it, use it.
(cli_redirect): New function comment. Replace the stream and
original_stream fields by the new streams field. Remove the
original_stream != NULL conditional, assert error on NULL instead.
(out_field_fmt, field_separator): New variable stream, initialize it, use it.
(cli_out_data_ctor): Assert non-NULL stream. Replace the stream and
original_stream fields by the new streams field.
(cli_out_set_stream): Replace the stream field by the new streams
field.
* cli-out.h: Include vec.h.
(ui_filep): New typedef, call DEF_VEC_P for it.
(struct cli_ui_out_data): Replace the stream and original_stream
fields by the new streams field.
* cli/cli-logging.c (set_logging_redirect): Call ui_out_redirect with
NULL first. Extend the comment.
(handle_redirections): Call ui_out_redirect with output.
* python/py-breakpoint.c (bppy_get_commands): Move ui_out_redirect
calls outside of the TRY_CATCH block.
gdb/testsuite/
* gdb.base/ui-redirect.exp: New file.
|
|
Code cleanup.
* breakpoint.c (bpstat_alloc): Remove unused prototype.
(bpstat_alloc): Change parameters cbs to bs_link_pointer. Adjust the
code.
(bpstat_stop_status): Change root_bs into bs_head and bs_link. Adjust
calls of bpstat_alloc. Remove explicit bs chain termination.
|
|
sane.
|
|
2010-08-17 Pedro Alves <pedro@codesourcery.com>
PR breakpoints/11371
* breakpoint.c (breakpoint_init_inferior): Decrement the
location's reference count instead of deleting right away.
(bpstat_free): Decrement the location's reference count. Make
static.
(bpstat_copy): Increment the location's reference count.
(bpstat_find_breakpoint): Adjust.
(bpstat_num): Adjust.
(print_it_typical): Adjust. Use the breakpoint pointer in the
bpstat instead of the location's owner.
(bpstat_alloc): Remove const qualifier from the 'bl' parameter.
Adjust to record the location's owner in the bpstat.
(watchpoint_check): Use the breakpoint pointer in the bpstat
instead of the location's owner.
(bpstat_check_breakpoint_conditions): Don't handle
bp_watchpoint_scope here. Use the breakpoint pointer in the
bpstat instead of the location's owner.
(bpstat_stop_status): Defer inferior function calls to after
building the bpstat list. Handle bp_watchpoint_scope here. Use
the breakpoint pointer in the bpstat instead of the location's
owner.
(bpstat_what): Use the breakpoint pointer in the bpstat instead of
the location's owner.
(free_bp_location): Don't walk bpstats clearing locations.
(incref_bp_location): New.
(decref_bp_location): New.
(breakpoint_auto_delete): Use the breakpoint pointer in the bpstat
instead of the location's owner.
(update_global_location_list): Clear the location's owner, and
decrement the location's reference count instead of deleting it
right away.
(breakpoint_retire_moribund): Decrement the location's reference
count instead of deleting it right away.
(bpstat_remove_bp_location): Delete.
(bpstat_remove_breakpoint): New.
(bpstat_remove_bp_location_callback): Delete.
(bpstat_remove_breakpoint_callback): New.
(delete_breakpoint): Iterate over all threads' stop_bpstat's
clearing references to the breakpoint that is being deleted.
* breakpoint.h (struct bp_location) <refc>: New field.
<owner>: Update comments.
(bpstat_free): Delete declaration.
(struct bpstats): Change the type of the breakpoint_at field to
struct breakpoint point, from struct bp_location pointer. Add new
field bp_location_at.
gdb/testsuite/
2010-08-17 Jan Kratochvil <jan.kratochvil@redhat.com>
Pedro Alves <pedro@codesourcery.com>
PR breakpoints/11371
* gdb.base/watch-cond-infcall.exp: New file.
* gdb.base/watch-cond-infcall.c: New file.
|
|
* breakpoint.c (update_watchpoint): Add source empty line. Prefer
EXP_STRING_REPARSE to EXP_STRING.
(watch_command_1): Set also EXP_STRING_REPARSE.
(delete_breakpoint): Free also EXP_STRING_REPARSE.
* breakpoint.h (struct breakpoint): New field exp_string_reparse.
Update comment for exp_string.
|
|
* value.c (release_value): Clear 'next' pointer.
* breakpoint.c (watch_command_1): Add 'just_location' argument.
(watch_command_wrapper): Update.
(watch_maybe_just_location): New function.
(watch_command): Update.
(rwatch_command_wrapper): Update.
(rwatch_command): Update.
(awatch_command_wrapper): Update.
(awatch_command): Update.
(check_for_argument): New function.
(_initialize_breakpoint): Update help text.
gdb/testsuite
* gdb.base/help.exp: Update.
* gdb.base/watchpoint.exp (test_watchpoint_and_breakpoint): Delete
watchpoint.
(test_watch_location): New proc.
(test_watchpoint_in_big_blob): Delete watchpoint.
* gdb.base/watchpoint.c (func5): New function.
(main): Call it.
gdb/doc
* gdb.texinfo (Set Watchpoints): Document -location option.
|
|
* solib-svr4.c (solib_break_names): Constify.
(bkpt_names, main_name_list): Constify.
(match_main): Constify soname arg.
(bfd_lookup_symbol): Constify symname arg.
(enable_break): Constify bkpt_namep.
* symtab.c (search_symbols): Constify types, types2, types3, types4.
(symtab_symbol_info): Constify classnames.
|
|
This is a problem that I noticed on GNU/Linux, when using both GDB
and GDBserver to debug an Ada program. To reproduce, use any Ada
program, built with debug info ("gnatmake -g ...").
Then start the program with gdbserver:
% gdbserver :4444 simple_main
And then insert a breakpoint using the name of an Ada function,
followed by connecting to the target server:
(gdb) b simple.test_simple
Breakpoint 1 at 0x401f28: file simple.adb, line 16.
(gdb) tar rem :4444
Remote debugging using :4444
Reading symbols from /lib64/ld-linux-x86-64.so.2...
Reading symbols from /usr/lib/debug/lib/ld-2.11.1.so...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
!! -> Error in re-setting breakpoint 1: Can't find member of namespace, class,
!! -> struct, or union named "simple.test_simple"
!! -> Hint: try 'simple.test_simple<TAB> or 'simple.test_simple<ESC-?>
!! -> (Note leading single quote.)
0x00007f4db3cf2af0 in _start () from /lib64/ld-linux-x86-64.so.2
Created trace state variable $trace_timestamp for target's variable 1.
The problem is related to the fact that GDB found debug symbols for
ld.so in /usr/lib/debug. For debugger configured with a prefix that
is different from /usr, one way to force the problem to reproduce is
to use:
(gdb) set debug-file-directory /usr/lib/debug
(assuming that debug info has been installed at that location).
The problem is that the wrong language is used to parse the breakpoint
location because it gets changed from under us as a side effect of
some of the code that we do in prepration for re-parsing. In particular,
breakpoint_re_set_one reads:
set_language (b->language);
input_radix = b->input_radix;
s = b->addr_string;
save_current_space_and_thread ();
switch_to_program_space_and_thread (b->pspace);
marker_spec = b->type == bp_static_tracepoint && is_marker_spec (s);
[if (marker_spec) decode_tracepoint_spec (...) else decode_line_1]
What happens in our case is that debugging information gets found
for ld.so. As a result, the current_frame language is C whereas it
would have been unknown if we did not have debugging info. And
save_current_space_and_thread() implicitly causes the current frame
to be selected, which changes the language automatically if the new
language is not uknown and the the language mode is auto.
The fix, until all parsing routines (including decode_line_1) get upgraded
to take a language, is to select the breakpoint language as late as possible.
In this case, we don't need to do that until we actually try to parse
the breakpoint addr_string.
gdb/ChangeLog:
* breakpoint.c (breakpoint_re_set_one): Move call to set_language
down, just before the block that parse the breakpoint addr_string.
|
|
print_one_breakpoint_location.
(print_one_breakpoint_location): Adjust.
(breakpoint_1): Adjust the type column width dynamically.
|
|
* breakpoint.c (single_step_breakpoints_inserted): New
function.
* breakpoint.h (single_step_breakpoints_inserted): Extern.
* infrun.c (maybe_software_singlestep): Add check code.
* record.c (record_resume): Add code for software single step.
(record_wait): Ditto.
|
|
* breakpoint.c (save_cmdlist): No longer static.
* gdbcmd.h (save_cmdlist): Declare.
* symfile.c (symbol_file_add_with_addrs_or_offsets): Set
OBJF_READNOW on objfile if readnow_symbol_files.
* elfread.c (elf_symfile_read): Use dwarf2_initialize_objfile.
(elf_sym_fns_gdb_index): New global.
* dwarf2read.c: Include exceptions.h.
(offset_type): New.
(struct mapped_index): New.
(dwarf2_per_cu_data_ptr): New typedef.
(struct dwarf2_per_objfile) <using_index, index_table, gdb_index>:
New fields.
(GDB_INDEX_SECTION): New define.
(struct dwarf2_per_cu_quick_data): New.
(struct dwarf2_per_cu_data) <objfile>: New field.
<psymtab>: Removed.
<v>: New field.
(byte_swap): New function.
(MAYBE_SWAP): New macro.
(INDEX_SUFFIX): New macro.
(dw2_do_instantiate_symtab): New function.
(dw2_instantiate_symtab): Likewise.
(create_cus_from_index): Likewise.
(create_addrmap_from_index): Likewise.
(mapped_index_string_hash): Likewise.
(find_slot_in_mapped_hash): Likewise.
(dwarf2_read_index): Likewise.
(dw2_setup): Likewise.
(dw2_require_line_header): Likewise.
(dw2_require_full_path): Likewise.
(dw2_find_last_source_symtab): Likewise.
(dw2_forget_cached_source_info): Likewise.
(dw2_lookup_symtab): Likewise.
(dw2_lookup_symbol): Likewise.
(dw2_do_expand_symtabs_matching): Likewise.
(dw2_pre_expand_symtabs_matching): Likewise.
(dw2_print_stats): Likewise.
(dw2_dump): Likewise.
(dw2_relocate): Likewise.
(dw2_expand_symtabs_for_function): Likewise.
(dw2_expand_all_symtabs): Likewise.
(dw2_expand_symtabs_with_filename): Likewise.
(dw2_find_symbol_file): Likewise.
(dw2_map_ada_symtabs): Likewise.
(dw2_expand_symtabs_matching): Likewise.
(dw2_find_pc_sect_symtab): Likewise.
(dw2_map_symbol_names): Likewise.
(dw2_map_symbol_filenames): Likewise.
(dw2_has_symbols): Likewise.
(dwarf2_gdb_index_functions): New global.
(dwarf2_initialize_objfile): New function.
(process_psymtab_comp_unit): Update.
(add_partial_subprogram): Likewise.
(dwarf2_psymtab_to_symtab): Likewise.
(psymtab_to_symtab_1): Use dw2_do_instantiate_symtab.
(process_full_comp_unit): Update.
(find_file_and_directory): New function.
(read_file_scope): Use find_file_and_directory.
(dwarf2_per_cu_objfile): Update.
(dwarf2_per_cu_addr_size): Update.
(dwarf2_per_cu_offset_size): Update.
(dwarf2_free_objfile): Free the index, if needed.
(dwarf2_per_objfile_free): Unmap the index, if needed.
(struct strtab_entry): New.
(hash_strtab_entry): New function.
(eq_strtab_entry): Likewise.
(create_strtab): Likewise.
(add_string): Likewise.
(struct symtab_index_entry): New.
(struct mapped_symtab): New.
(hash_symtab_entry): New function.
(eq_symtab_entry): Likewise.
(delete_symtab_entry): Likewise.
(create_index_table): Likewise.
(create_mapped_symtab): Likewise.
(cleanup_mapped_symtab): Likewise.
(find_slot): Likewise.
(hash_expand): Likewise.
(add_index_entry): Likewise.
(add_indices_to_cpool): Likewise.
(write_hash_table): Likewise.
(add_address_entry): Likewise.
(write_psymbols): Likewise.
(write_obstack): Likewise.
(unlink_if_set): Likewise.
(write_psymtabs_to_index): Likewise.
(save_gdb_index_command): Likewise.
(_initialize_dwarf2_read): Install "save gdb-index"
command.
(create_all_comp_units): Initialize 'objfile' field of CU.
(dwarf2_locate_sections): Check for .gdb_index.
* psymtab.h (dwarf2_gdb_index_functions): Declare.
* symfile.h (dwarf2_initialize_objfile): Declare.
gdb/doc
* gdb.texinfo (Index Files): New node.
|
|
Thiago Jung Bauermann <bauerman@br.ibm.com>
Support for hw accelerated condition watchpoints in booke powerpc.
* breakpoint.c (fetch_watchpoint_value): Rename to fetch_subexp_value
and move to eval.c. Change callers.
(insert_bp_location): Pass watchpoint condition in
target_insert_watchpoint.
(remove_breakpoint_1) Pass watchpoint condition in
target_remove_watchpoint.
(watchpoint_locations_match): Call
target_can_accel_watchpoint_condition.
* eval.c: Include wrapper.h.
(fetch_subexp_value): Moved from breakpoint.c.
* ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint):
Formatting fix.
(can_use_watchpoint_cond_accel): New function.
(calculate_dvc): Likewise.
(num_memory_accesses): Likewise.
(check_condition): Likewise.
(ppc_linux_can_accel_watchpoint_condition): Likewise
(ppc_linux_insert_watchpoint): Call can_use_watchpoint_cond_accel,
check_condition and calculate_dvc.
(ppc_linux_remove_watchpoint): Likewise.
(_initialize_ppc_linux_nat): Set to_can_accel_watchpoint_condition to
ppc_linux_can_accel_watchpoint_condition
* target.c (debug_to_insert_watchpoint): Add argument for watchpoint
condition.
(debug_to_remove_watchpoint): Likewise.
(debug_to_can_accel_watchpoint_condition): New function.
(update_current_target): Set to_can_accel_watchpoint_condition.
(setup_target_debug): Set to_can_accel_watchpoint_condition.
* target.h: Add opaque declaration for struct expression.
(struct target_ops) <to_insert_watchpoint>,
<to_remove_watchpoint>: Add new arguments to pass the watchpoint
<to_can_accel_watchpoint_condition>: New member.
condition. Update all callers and implementations.
(target_can_accel_watchpoint_condition): New macro.
* value.c (free_value_chain): New function.
* value.h (fetch_subexp_value): New prototype.
(free_value_chain): Likewise.
|
|
"clear".
|
|
Thiago Jung Bauermann <bauerman@br.ibm.com>
* breakpoint.c (can_use_hardware_watchpoint): Answer "what does this
represent?" question in comment. Change comment to a proper sentence.
|
|
* breakpoint.c (BREAK_ARGS_HELP, _initialize_breakpoint): Clarify
usefulness suggestion of multiple breakpoints at same location.
gdb/testsuite/
* gdb.base/help.exp: Adjust expected output.
|
|
* breakpoint.c (BREAK_ARGS_HELP): Add missing `the'.
gdb/testsuite/
* gdb.base/help: Adjust expected output.
|
|
unnecessary space in string.
* filesystem.c (_initialize_filesystem): Ditto.
* frame.c (_initialize_frame): Ditto.
* infcmd.c (step_once): Ditto.
* infrun.c (_initialize_infrun): Ditto.
* linux-nat.c (linux_child_follow_fork): Ditto.
* maint.c (maintenance_deprecate): Ditto.
* memattr.c (_initialize_mem): Ditto.
* mips-tdep.c (_initialize_mips_tdep): Ditto.
* monitor.c (monitor_open): Ditto.
* procfs.c (procfs_xfer_memory): Ditto.
* reverse.c (bookmarks_info): Ditto.
* sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs): Ditto.
* stack.c (_initialize_stack): Ditto.
* tracepoint.c (_initialize_tracepoint): Ditto.
* xtensa-tdep.c (xtensa_supply_gregset,
xtensa_regset_from_core_section): Ditto.
|
|
gdb/gdbserver/
* configure.ac: Handle --with-ust. substitute ustlibs and ustinc.
* mem-break.c (uninsert_all_breakpoints)
(reinsert_all_breakpoints): New.
* mem-break.h (reinsert_all_breakpoints, uninsert_all_breakpoints):
* tracepoint.c (ust_loaded, helper_thread_id, cmd_buf): New.
(gdb_agent_ust_loaded, helper_thread_id)
(gdb_agent_helper_thread_id): New macros.
(struct ipa_sym_addresses): Add addr_ust_loaded,
addr_helper_thread_id, addr_cmd_buf.
(symbol_list): Add ust_loaded, helper_thread_id, cmd_buf.
(in_process_agent_loaded_ust): New.
(write_e_ust_not_loaded): New.
(maybe_write_ipa_ust_not_loaded): New.
(struct collect_static_trace_data_action): New.
(enum tracepoint_type) <static_tracepoint>: New.
(struct tracepoint) <handle>: Mention static tracepoints.
(struct static_tracepoint_ctx): New.
(CMD_BUF_SIZE): New.
(add_tracepoint_action): Handle static tracepoint actions.
(unprobe_marker_at): New.
(clear_installed_tracepoints): Handle static tracepoints.
(cmd_qtdp): Handle static tracepoints.
(probe_marker_at): New.
(cmd_qtstart): Handle static tracepoints.
(response_tracepoint): Handle static tracepoints.
(cmd_qtfstm, cmd_qtsstm, cmd_qtstmat): New.
(handle_tracepoint_query): Handle qTfSTM, qTsSTM and qTSTMat.
(get_context_regcache): Handle static tracepoints.
(do_action_at_tracepoint): Handle static tracepoint actions.
(traceframe_find_block_type): Handle static trace data blocks.
(traceframe_read_sdata): New.
(download_tracepoints): Download static tracepoint actions.
[HAVE_UST] Include ust/ust.h, dlfcn.h, sys/socket.h, and sys/un.h.
(GDB_PROBE_NAME): New.
(ust_ops): New.
(GET_UST_SYM): New.
(USTF): New.
(dlsym_ust): New.
(ust_marker_to_static_tracepoint): New.
(gdb_probe): New.
(collect_ust_data_at_tracepoint): New.
(gdb_ust_probe): New.
(UNIX_PATH_MAX, SOCK_DIR): New.
(gdb_ust_connect_sync_socket): New.
(resume_thread, stop_thread): New.
(run_inferior_command): New.
(init_named_socket): New.
(gdb_ust_socket_init): New.
(cstr_to_hexstr): New.
(next_st): New.
(first_marker, next_marker): New.
(response_ust_marker): New.
(cmd_qtfstm, cmd_qtsstm): New.
(unprobe_marker_at, probe_marker_at): New.
(cmd_qtstmat, gdb_ust_thread): New.
(gdb_ust_init): New.
(initialize_tracepoint_ftlib): Call gdb_ust_init.
* linux-amd64-ipa.c [HAVE_UST]: Include ust/processor.h
(ST_REGENTRY): New.
(x86_64_st_collect_regmap): New.
(X86_64_NUM_ST_COLLECT_GREGS): New.
(AMD64_RIP_REGNUM): New.
(supply_static_tracepoint_registers): New.
* linux-i386-ipa.c [HAVE_UST]: Include ust/processor.h
(ST_REGENTRY): New.
(i386_st_collect_regmap): New.
(i386_NUM_ST_COLLECT_GREGS): New.
(supply_static_tracepoint_registers): New.
* server.c (handle_query): Handle qXfer:statictrace:read.
<qSupported>: Report support for StaticTracepoints, and
qXfer:statictrace:read features.
* server.h (traceframe_read_sdata)
(supply_static_tracepoint_registers): Declare.
* remote-utils.c (convert_int_to_ascii, hexchars, ishex, tohex)
(unpack_varlen_hex): Include in IPA build.
* Makefile.in (ustlibs, ustinc): New.
(IPA_OBJS): Add remote-utils-ipa.o.
($(IPA_LIB)): Link -ldl and -lpthread.
(UST_CFLAGS): New.
(IPAGENT_CFLAGS): Add UST_CFLAGS.
* config.in, configure: Regenerate.
gdb/
* NEWS: Mention new support for static tracepoints.
(New packets): Mention qTfSTM, qTsSTM, qTSTMat and
qXfer:statictrace:read.
(New features in the GDB remote stub, GDBserver): Mention static
tracepoints support using an UST based backend.
(New commands): Mention "info static-tracepoint-markers" and
"strace".
* breakpoint.c (is_marker_spec): New.
(is_tracepoint): Handle static tracepoints.
(validate_commands_for_breakpoint): Static tracepoints can't do
while-stepping.
(static_tracepoints_here): New.
(bpstat_what): Handle static tracepoints.
(print_one_breakpoint_location, allocate_bp_location, mention):
Ditto.
(create_breakpoint_sal): Ditto.
(decode_static_tracepoint_spec): New.
(create_breakpoint): Replace `hardwareflag', and `traceflag' with
`type_wanted'. Adjust. Handle static tracepoint marker
locations.
(break_command_1): Adjust.
(update_static_tracepoint): New.
(update_breakpoint_locations): Handle static tracepoints.
(breakpoint_re_set_one): Handle static tracepoint marker
locations.
(disable_command, enable_command): Handle static tracepoints.
(trace_command, ftrace_command): Adjust.
(strace_command): New.
(create_tracepoint_from_upload): Adjust.
(save_breakpoints): Handle static tracepoints.
(_initialize_breakpoint): Install the "strace" command.
* breakpoint.h (enum bptype): New bp_static_tracepoint type.
(struct breakpoint): New fields static_trace_marker_id and
static_trace_marker_id_idx.
(breakpoints_here_p): Declare.
(create_breakpoint): Adjust.
(static_tracepoints_here): Declare.
* remote.c (struct remote_state) <static_tracepoints>: New field.
(PACKET_qXfer_statictrace_read, PACKET_StaticTracepoints): New.
(remote_static_tracepoint_marker_at): New.
(remote_static_tracepoint_markers_by_strid): New.
(remote_static_tracepoint_feature): New.
(remote_disconnected_tracing_feature): Handle "StaticTracepoints".
(remote_xfer_partial): Handle TARGET_OBJECT_STATIC_TRACE_DATA.
(remote_supports_static_tracepoints): New.
(remote_download_tracepoint): Download static tracepoints.
(init_remote_ops): Install remote_static_tracepoint_marker_at and
remote_static_tracepoint_markers_by_strid.
(_initialize_remote): Install set|show remote static-tracepoints,
and set|show remote read-sdata-object commands.
* target.c (update_current_target): Inherit and default
to_static_tracepoint_marker_at, and
to_static_tracepoint_markers_by_strid.
* target.h (static_tracepoint_marker): Forward declare.
(enum target_object): New object TARGET_OBJECT_STATIC_TRACE_DATA.
(static_tracepoint_marker_p): New typedef.
(DEF_VEC_P(static_tracepoint_marker_p)): New VEC type.
(struct target_ops): New fields to_static_tracepoint_marker_at and
to_static_tracepoint_markers_by_strid.
(target_static_tracepoint_marker_at)
(target_static_tracepoint_markers_by_strid): New.
* tracepoint.c: Include source.h.
(validate_actionline): Handle $_sdata.
(struct collection_list): New field strace_data.
(add_static_trace_data): New.
(clear_collection_list): Clear strace_data.
(stringify_collection_list): Account for a possible static trace
data collection.
(encode_actions_1): Encode an $_sdata collection.
(parse_tracepoint_definition): Handle static tracepoints.
(parse_static_tracepoint_marker_definition): New.
(release_static_tracepoint_marker): New.
(print_one_static_tracepoint_marker): New.
(info_static_tracepoint_markers_command): New.
(sdata_make_value): New.
(_initialize_tracepoint): Create the $_sdata convenience variable.
Add the "info static-tracepoint-markers" command.
Mention $_sdata in the "collect" command's help output.
* tracepoint.h (struct static_tracepoint_marker): New.
(parse_static_tracepoint_marker_definition)
(release_static_tracepoint_marker): Declare.
* mi/mi-cmd-break.c (mi_cmd_break_insert): Adjust.
* python/py-breakpoint.c (bppy_new): Adjust.
doc/
* gdb.texinfo (Convenience Variables): Document $_sdata.
(Commands to Set Tracepoints): Describe static tracepoints. Add
`Listing Static Tracepoint Markers' menu entry. Document
"strace".
(Tracepoint Action Lists): Document collecting $_sdata.
(Listing Static Tracepoint Markers): New subsection.
(Tracepoints support in gdbserver): Mention static tracepoints.
(remote packets, enabling and disabling): Mention
read-sdata-object.
(General Query Packets) <qSupported>: Document qXfer:sdata:read
and StaticTracepoint.
Mention qTfSTM, qTsSTM and qTSTMat as tracepoint packets.
Document qXfer:sdata:read.
(Tracepoint packets): Document qTfSTM, qTsSTM and qTSTMat.
|
|
All callers updated.
|
|
Fix PR 9436.
* breakpoint.c (handle_jit_event): New function.
(bpstat_what): Remove enum class, kc, ss, sn, sgl, slr, clr, sr, shl,
jit, err, table and bs_class. New variables shlib_event, jit_event,
this_action and bptype. Change bs_class assignments to this_action
assignments. new unhandled bptype internal error. Move here
shlib_event and jit_event handling from handle_inferior_event.
* breakpoint.h (enum bpstat_what_main_action): Extend the comment.
Reorder items. Remove BPSTAT_WHAT_CHECK_SHLIBS and
BPSTAT_WHAT_CHECK_JIT.
* inferior.h (debug_infrun, stop_on_solib_events): New declarations.
* infrun.c (debug_infrun, stop_on_solib_events): Remove static.
(handle_inferior_event): Reinitialize frame and gdbarch after
bpstat_what call. Move BPSTAT_WHAT_CHECK_SHLIBS and
BPSTAT_WHAT_CHECK_JIT handling to bpstat_what. Reinitialize even
gdbarch when frame gets reinitialized.
gdb/testsuite/
Test PR 9436.
* gdb.base/nostdlib.exp, gdb.base/nostdlib.c: New.
|
|
* infrun.c (handle_inferior_event): Handle presence of single-step
breakpoints for TARGET_WAITKIND_FORKED and TARGET_WAITKIND_VFORKED.
Cancel single-step breakpoints for TARGET_WAITKIND_EXITED,
TARGET_WAITKIND_SIGNALED, and TARGET_WAITKIND_EXECD.
* breakpoint.c (detach_single_step_breakpoints): New function.
(detach_breakpoints): Call it.
(cancel_single_step_breakpoints): New function.
* breakpoint.h (cancel_single_step_breakpoints): Add prototype.
* spu-tdep.c (spu_memory_remove_breakpoint): New function.
(spu_gdbarch_init): Install it.
testsuite/ChangeLog:
* gdb.cell/fork.exp: New file.
* gdb.cell/fork.c: Likewise.
* gdb.cell/fork-spu.c: Likewise.
|
|
* breakpoint.c (_initialize_breakpoint): Use add_prefix_cmd,
not add_abbrev_prefix_cmd, for "enable breakpoints".
|
|
2010-06-16 Sergio Durigan Junior <sergiodj@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
* breakpoint.c: Include parser-defs.h.
(watchpoint_exp_is_const): New function.
(watch_command_1): Call watchpoint_exp_is_const to check
if the expression is constant.
gdb/doc/ChangeLog:
2010-06-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.texinfo: Include information about the correct use
of addresses in the `watch' command.
gdb/testsuite/ChangeLog:
2010-06-16 Jan Kratochvil <jan.kratochvil@redhat.com>
Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.base/watch-notconst.c: New file.
* gdb.base/watch-notconst.S: New file.
* gdb.base/watch-notconst2.c: New file.
* gdb.base/watch-notconst2.S: New file.
* gdb.base/watch-notconst.exp: New file.
* gdb.base/watchpoint.c (global_ptr_ptr): New variable.
(func4): Add operations on `global_ptr_ptr'.
* gdb.base/watchpoint.exp (test_constant_watchpoint): New
routine to test watchpoints created with a constant expression.
(test_inaccessible_watchpoint): Include tests for watchpoints
created with a constant expression.
|
|
* breakpoint.c (breakpoint_restore_shadows): New OWNER comment.
(should_be_inserted): Return zero also on NULL OWNER.
(breakpoint_program_space_exit): New OWNER comment.
(insert_breakpoint_locations): Extend comment for OWNER.
(remove_breakpoint_1, remove_breakpoint): Assert on OWNER.
(breakpoint_init_inferior, breakpoint_here_p, breakpoint_thread_match):
New OWNER comment.
(print_it_typical): Return PRINT_UNKNOWN on NULL OWNER.
(watchpoint_check): New assert on BREAKPOINT_AT and OWNER.
(bpstat_check_location): New assert on OWNER.
(bpstat_check_watchpoint, bpstat_check_breakpoint_conditions): Move BL
and B initializations to the code block. New assert on them.
(print_one_breakpoint_location): New OWNER comment.
(watchpoint_locations_match): Assert on OWNER.
(breakpoint_locations_match): Move HW_POINT1 and HW_POINT2
initializations to the code block. New assert on OWNER.
(set_breakpoint_location_function): New assert on OWNER.
(disable_breakpoints_in_shlibs, disable_breakpoints_in_unloaded_shlib)
(bp_location_compare, update_global_location_list)
(update_global_location_list): New OWNER comment.
gdb/testsuite/
* gdb.base/moribund-step.exp: New.
|
|
Clear stale specific bp_location from former whole breakpoint.
* breakpoint.c (delete_breakpoint): Move the stale referencing clear
code ...
(free_bp_location): ... here. Rename there the called function to
bpstat_remove_bp_location_callback.
(bpstat_remove_breakpoint_callback): Rename to ...
(bpstat_remove_bp_location_callback): ... here, change DATA resolution
to struct bp_location. Change the called function to
bpstat_remove_bp_location. Create new declaration for the function.
(bpstat_remove_breakpoint): Rename to ...
(bpstat_remove_bp_location): ..., change the parameter to loc, adjust
code for the new parameter type.
|
|
* breakpoint.c (update_global_location_list): Fix comment typo.
|
|
* blockframe.c: White space.
* breakpoint.c: White space.
* buildsym.c: White space.
|
|
* breakpoint.c (validate_commands_for_breakpoint):
Delete unused variables.
(insert_catchpoint): Delete unused variable.
(update_watchpoint): Delete unused variable.
(insert_bp_location): Delete unused variable.
(insert_breakpoint_locations): Delete unused variable.
(remove_breakpoint_1): Delete unused variable.
(software_breakpoint_inserted_here_p): Delete unused variable.
(watchpoints_triggered): Delete unused variable.
(bpstat_check_watchpoint): Delete unused variable.
(bpstat_stop_status): Delete unused variable.
(print_one_breakpoint_location): Delete unused variable.
(allocate_bp_location): Delete unused variable.
(create_breakpoint): Delete unused variable.
(watch_command_1): Delete unused variable.
(catch_exception_command_1): Delete unused variable.
(catch_ada_exception_command): Delete unused variable.
(delete_breakpoint): Delete unused variable.
(breakpoint_re_set_one): Delete unused variable.
(do_enable_breakpoint): Delete unused variable.
|
|
Implement `save-breakpoints'.
gdb/
* breakpoint.c (save_cmdlist): New.
(breakpoint_set_cmdlist, breakpoint_show_cmdlist): Moved up close
to save_cmdlist.
(print_recreate_catch_fork): New.
(catch_fork_breakpoint_ops): Install it.
(print_recreate_catch_vfork): New.
(catch_vfork_breakpoint_ops): Install it.
(print_recreate_catch_syscall): New.
(catch_syscall_breakpoint_ops): Install it.
(print_recreate_catch_exec): New.
(catch_exec_breakpoint_ops): Install it.
(print_recreate_exception_catchpoint): New.
(gnu_v3_exception_catchpoint_ops): Install it.
(save_breakpoints): New, based on tracepoint_save_command, but
handle all breakpoint types.
(save_breakpoints_command): New.
(tracepoint_save_command): Rename to...
(save_tracepoints_command): ... this, and reimplement using
save_breakpoints.
(save_command): New.
(_initialize_breakpoints): Install the "save" command prefix.
Install the "save breakpoints" command. Make "save-tracepoints" a
deprecated alias for "save tracepoints".
* breakpoint.h (struct breakpoint_ops): New field `print_recreate'.
* ada-lang.c (print_recreate_exception): New.
(print_recreate_catch_exception): New.
(catch_exception_breakpoint_ops): Install it.
(print_recreate_catch_exception_unhandled): New.
(catch_exception_unhandled_breakpoint_ops): Install it.
(print_recreate_catch_assert): New.
(catch_assert_breakpoint_ops): Install it.
* NEWS: Mention the new `save breakpoints' command. Mention the
new `save tracepoints' alias and that `save-tracepoints' is now
deprecated.
gdb/doc/
* gdb.texinfo (Save Breakpoints): New node.
(save-tracepoints): Rename to ...
(save tracepoints): ... this. Mention that `save-tracepoints' is
a deprecated alias to `save tracepoints'.
gdb/testsuite/
* gdb.trace/save-trace.exp: Adjust.
|
|
is_hardware_watchpoint.
(watchpoints_triggered): Ditto.
(bpstat_check_location): Use is_watchpoint and
is_hardware_watchpoint.
(bpstat_check_watchpoint): Use is_watchpoint and
is_hardware_watchpoint.
(bpstat_stop_status): Fix comment.
(user_settable_breakpoint): Use is_watchpoint.
(hw_watchpoint_used_count): Use is_hardware_watchpoint.
(disable_watchpoints_before_interactive_call_start): Use
is_watchpoint.
(enable_watchpoints_after_interactive_call_stop): Use
is_watchpoint.
(clear_command): Use is_watchpoint.
(do_enable_breakpoint): Use is_watchpoint.
|
|
set_breakpoint_condition stripped from breakpoint number.
|
|
Thiago Jung Bauermann <bauerman@br.ibm.com>
Tom Tromey <tromey@redhat.com>
* breakpoint.c (condition_command): Simplify. Move condition
setting code to ...
(set_breakpoint_condition): ... here. New function.
* breakpoint.h (set_breakpoint_condition): Declare.
* Makefile.in (SUBDIR_PYTHON_OBS): Add py-breakpoint.
(SUBDIR_PYTHON_SRCS): Likewise.
(py-breakpoint.o): New rule.
* python/py-breakpoint.c: New file.
* python/python-internal.h (gdbpy_breakpoints)
(gdbpy_initialize_breakpoints): Declare.
(GDB_PY_SET_HANDLE_EXCEPTION) Define.
2010-04-09 Phil Muldoon <pmuldoon@redhat.com>
* gdb.python/py-breakpoint.exp: New File.
* gdb.python/py-breakpoint.C: Ditto.
2010-04-09 Phil Muldoon <pmuldoon@redhat.com>
Thiago Jung Bauermann <bauerman@br.ibm.com>
Tom Tromey <tromey@redhat.com>
* gdb.texinfo (Breakpoints In Python): New Node.
|
|
* breakpoint.c (default_collect_info): New function.
(breakpoints_info): Call it.
(maintenance_info_breakpoints): Ditto.
(tracepoints_info): Ditto.
|
|
* defs.h (char_ptr): Move typedef here from...
* ada-lang.c (char_ptr): Remove.
* charset.c (char_ptr): Remove.
* tracepoint.h (struct uploaded_string): Remove.
(struct uploaded_tp): Use vectors for string arrays.
* tracepoint.c (trace_save): Use vectors of actions.
(parse_tracepoint_definition): Ditto.
(get_uploaded_tp): Clear vectors.
* breakpoint.c (create_tracepoint_from_upload): Use vectors.
(next_cmd): Change to an int.
(read_next_cmd): Use vector of command strings.
|
|
Code cleanup.
* breakpoint.c (bpstat_stop_status): Use bpstat_causes_stop.
|
|
Nathan Sidwell <nathan@codesourcery.com>
* breakpoint.c (breakpoint_1): Add filter argument, return number of
breakpoints printed.
(is_hardware_watchpoint): Make argument const.
(is_watchpoint): Ditto.
(is_tracepoint): Merge of tracepoint_type and breakpoint_is_tracepoint,
use it everywhere.
(breakpoints_info): Pass NULL to breakpoint_1.
(maintenance_info_breakpoints): Ditto.
(watchpoints_info): New function.
(tracepoints_info): Use breakpoint_1 filter.
(set_ignore_count): Warn that tracepoint ignore count will be ignored.
(_initialize_breakpoint): Make "info watchpoints" its own command.
* breakpoint.h (is_tracepoint): Rename from breakpoint_is_tracepoint.
* mi/mi-cmd-break.c (mi_cmd_break_commands): Use is_tracepoint.
* gdb.texinfo (Setting Breakpoints): "info watch" no longer a synonym.
(Setting Watchpoints): Update description of "info watch".
(Disabling Breakpoints): Only "info break" lists all.
* gdb.base/completion.exp: Update for new "info watchpoints".
* gdb.base/default.exp: Ditto.
* gdb.base/help.exp: Ditto.
* gdb.base/watchpoint.exp: Ditto.
* gdb.trace/infotrace.exp: Update "info tracpoints" output.
|
|
* breakpoint.c (bpstat_find_step_resume_breakpoint): Remove.
* breakpoint.h (bpstat_find_step_resume_breakpoint): Remove.
|
|
breakpoint.c, and forward declare.
(breakpoint_commands): Declare.
* breakpoint.c (struct counted_command_line): Moved here.
(breakpoint_commands): New.
* tracepoint.c (encode_actions): Use breakpoint_commands.
* remote.c (remote_download_tracepoint): Ditto.
|
|
* breakpoint.c (multi_start, multi_end, last_was_multi): Delete.
(prev_breakpoint_count): New.
(set_breakpoint_count): Adjust.
(rbreak_start_breakpoint_count): New.
(start_rbreak_breakpoints): Adjust.
(end_rbreak_breakpoints): Adjust.
(struct commands_info) <arg>: New field.
(do_map_commands_command): Tweak output to include breakpoint spec
range.
(commands_command_1): Adjust. Avoid setting an xfree cleanup if
ARG was empty on entry. Set INFO's arg.
(create_breakpoint): Adjust.
* NEWS: Clarify `commands' changes.
gdb/doc/
* gdb.texinfo (Break Commands): Clarify `commands' changes, and
add cross reference.
gdb/testsuite/
* gdb.base/commands.exp: Adjust.
* gdb.cp/extern-c.exp: Adjust.
|
|
* breakpoint.c (tracepoint_save_command): Include variables,
conditionals, tracepoint types, and default-collect.
* tracepoint.c (save_trace_state_variables): New function.
* tracepoint.h (save_trace_state_variables): Declare it.
* gdb.trace/save-trace.exp: Test save/restore of default-collect
and tracepoint conditionals.
(gdb_verify_tracepoints): Delete unused return.
|
|
* tracepoint.h (struct uploaded_string): New struct.
(struct uploaded_tp): New fields for source strings.
* breakpoint.c (this_utp, next_cmd): New globals.
(read_uploaded_action): New function.
(create_tracepoint_from_upload): Fill in more parts
of a tracepoint.
* tracepoint.c (encode_source_string): New function.
(trace_save): Write out source strings, fix error checks.
(parse_tracepoint_definition): Add source string parsing.
* remote.c (PACKET_TracepointSource): New packet type.
(remote_download_command_source): New function.
(remote_download_tracepoint): Download source pieces also.
(_initialize_remote): Add packet config command.
* gdb.texinfo (Tracepoint Packets): Describe QTDPsrc.
(General Query Packets): Describe TracepointSource.
|
|
* breakpoint.c (commands_command_1): Duplicate 'arg'.
|
|
(skip_prologue_sal): Remove local definition.
(resolve_sal_pc): Remove now unnecessary code.
* linespec.c (minsym_found): Call skip_prologue_sal.
* symtab.c (find_function_start_pc): Remove.
(find_function_start_sal): Extract prologue skipping into ...
(skip_prologue_sal): ... this new function. Handle code both
with and without debug info. Respect SAL's explicit_pc and
explicit_line flags. Inline old find_function_start_pc.
* symtab.h (find_function_start_pc): Remove.
(skip_prologue_sal): Add prototype.
|
|
|
|
* infrun.c (handle_inferior_event): Change initialization of
stop_stack_dummy.
(handle_inferior_event): Change assignment to stop_stack_dummy.
(normal_stop): Update use of stop_stack_dummy.
(struct inferior_status) <stop_stack_dummy>: Change type.
* inferior.h (stop_stack_dummy): Update.
* infcmd.c (stop_stack_dummy): Change type.
* infcall.c (cleanup_delete_std_terminate_breakpoint): New
function.
(call_function_by_hand): Call set_std_terminate_breakpoint.
Rewrite std::terminate handling.
* breakpoint.h (enum bptype) <bp_std_terminate,
bp_std_terminate_master>: New.
(enum stop_stack_kind): New.
(struct bpstat_what) <call_dummy>: Change type.
(set_std_terminate_breakpoint, delete_std_terminate_breakpoint):
Declare.
* breakpoint.c (create_std_terminate_master_breakpoint): New
function.
(update_breakpoints_after_exec): Handle bp_std_terminate_master.
Call create_std_terminate_master_breakpoint.
(print_it_typical): Handle new breakpoint kinds.
(bpstat_stop_status): Handle bp_std_terminate_master.
(bpstat_what): Correctly set call_dummy field. Handle
bp_std_terminate_master and bp_std_terminate.
(print_one_breakpoint_location): Update.
(allocate_bp_location): Update.
(set_std_terminate_breakpoint): New function.
(delete_std_terminate_breakpoint): Likewise.
(create_thread_event_breakpoint): Update.
(delete_command): Update.
(breakpoint_re_set_one): Update.
(breakpoint_re_set): Call create_std_terminate_master_breakpoint.
|
|
PR breakpoints/9352:
* NEWS: Mention changes to `commands' and `rbreak'.
* symtab.c (do_end_rbreak_breakpoints): New function.
(rbreak_command): Call start_rbreak_breakpoints; arrange to call
end_rbreak_breakpoints.
* breakpoint.c (breakpoint_count, tracepoint_count): Now static.
(set_breakpoint_count): Likewise. Clear last_was_multi.
(multi_start, multi_end, last_was_multi): New globals.
(start_rbreak_breakpoints, end_rbreak_breakpoints): New
functions.
(struct commands_info): New
(do_map_commands_command): New function.
(commands_command_1): New function.
(commands_command): Use it.
(commands_from_control_command): Likewise.
(do_delete_breakpoint): New function.
(delete_command): Use it.
(map_breakpoint_numbers): Add 'data' argument. Pass to callback.
(do_map_disable_breakpoint): New function.
(disable_command): Use it.
(do_map_enable_breakpoint): New function.
(enable_command): Use it.
(enable_once_breakpoint): Add argument.
(enable_once_command): Update.
(enable_delete_breakpoint): Add argument.
(enable_delete_command): Update.
(break_command_really): Set last_was_multi when needed.
(check_tracepoint_command): Fix formatting.
(validate_commands_for_breakpoint): New function.
(breakpoint_set_commands): Use it.
(tracepoint_save_command): Update.
* breakpoint.h (start_rbreak_breakpoints, end_rbreak_breakpoints):
Declare.
gdb/doc
PR breakpoints/9352:
* gdb.texinfo (Break Commands): Update.
gdb/testsuite
PR breakpoints/9352:
* gdb.base/default.exp: Update.
* gdb.base/commands.exp: Update.
* gdb.cp/extern-c.exp: Test setting commands on multiple
breakpoints at once.
|
|
(struct breakpoint) <commands>: Change type.
(struct bpstats) <commands>: Change type.
<commands_left>: New field.
* breakpoint.c (alloc_counted_command_line): New function.
(incref_counted_command_line): Likewise.
(decref_counted_command_line): Likewise.
(do_cleanup_counted_command_line): Likewise.
(make_cleanup_decref_counted_command_line): Likewise.
(breakpoint_set_commands): Use decref_counted_command_line and
alloc_counted_command_line.
(commands_command): Don't error if breakpoint commands are
executing.
(commands_from_control_command): Likewise.
(bpstat_free): Update.
(bpstat_copy): Likewise.
(bpstat_clear_actions): Likewise.
(bpstat_do_actions_1): Likewise.
(bpstat_stop_status): Likewise.
(print_one_breakpoint_location): Likewise.
(delete_breakpoint): Likewise.
(bpstat_alloc): Initialize new field.
(tracepoint_save_command): Update.
* tracepoint.c (encode_actions): Update.
(trace_dump_command): Update.
|
|
current spelling of 'teval'.
|
|
* defs.h (read_command_lines, read_command_lines_1): New
parameters validator and closure.
* tracepoint.h (struct action_line): Remove.
* breakpoint.h (struct breakpoint): Remove the 'actions'
field.
* defs.h (enum command_control_type): New value
while_stepping_control.
(struct command_line): Add comments.
* breakpoint.c (breakoint_is_tracepoint): New.
(breakpoint_set_commands): For tracepoints,
verify the commands are permissible.
(check_tracepoint_commands): New.
(commands_command): Require that each new line is validated using
check_tracepoint_command, if we set commands for a tracepoint.
(create_tracepoint_from_upload): Likewise.
(print_one_breakpoint_location): Remove the code to print
actions specifically.
(tracepoint_save_command): Relay to print_command_lines.
* cli/cli-script.c (process_next_line): New parameters validator
and closure. Handle 'while-stepping'. Call validator if not null.
(read_command_lines, read_command_lines1): Likewise.
(recurse_read_control_structure): New parameters validator and
closure. Handle while_stepping_control.
(print_command_lines): Handle while-stepping.
(get_command_line, define_command, document_command): Adjust.
* remote.c (remote_download_tracepoint): Adjust.
* tracepoint.c (make_cleanup_free_actions, read_actions)
(free_actions, do_free_actions_cleanup): Remove.
(trace_actions_command): Use read_command_lines.
(validate_actionline): Use error in one place.
(encode_actions_1): New, extracted from...
(encode_actions): ...this. Also use cleanups for exception
safety.
(trace_dump_command): Adjust.
* mi/mi-cmd-break (mi_cmd_break_commands): Validate commands if
it's tracepoint.
|