* ctf.c (_initialize_ctf): Include "completer.h".
Call add_target_with_completer instead of add_target.
gdb/testsuite/
* gdb.base/completion.exp: Test completion of command
'target ctf' if target ctf is supported.
owner when sections are not adjacent and exceed group size.
(Target_powerpc::group_sections): Handle corner case.
(Target_powerpc::Branch_info::make_stub): Handle case where
stub table doesn't exist due to branches in non-exec sections.
(Target_powerpc::Relocate::relocate): Likewise.
const.
* dwarf2read.c (struct dwarf2_section_info) <buffer>: Now const.
(struct die_reader_specs) <buffer>: Likewise.
(die_reader_func_ftype): Make 'info_ptr' const.
(struct line_header) <include_dirs, statement_program_start,
statement_program_end>: Now const.
(struct file_entry) <name>: Likewise.
(struct partial_die_info) <sibling>: Likewise.
(struct dwarf_block) <data>: Likewise.
(dwarf2_read_section): Remove cast.
(dwarf2_get_section_info): Make 'bufp' const.
(read_index_from_section): Constify.
(dw2_get_file_names_reader): Make 'info_ptr' const.
(dw2_get_primary_filename_reader): Likewise.
(read_comp_unit_head): Make 'info_ptr' and return type const.
(read_and_check_comp_unit_head, read_and_check_type_unit_head):
Likewise.
(read_abbrev_offset): Constify.
(dwarf2_create_include_psymtab): Make 'name' const.
(create_debug_types_hash_table): Update.
(read_cutu_die_from_dwo): Make 'result_info_ptr' const.
(init_cutu_and_read_dies, init_cutu_and_read_dies_no_follow):
Constify.
(process_psymtab_comp_unit_reader, build_type_psymtabs_reader)
(load_partial_comp_unit_reader): Make 'info_ptr' const.
(read_comp_units_from_section): Constify.
(peek_abbrev_code, peek_die_abbrev, skip_children, skip_one_die)
(locate_pdi_sibling, load_full_comp_unit_reader): Make 'info_ptr'
const.
(dwarf2_compute_name, setup_type_unit_groups): Constify.
(create_dwo_debug_info_hash_table): Make 'info_ptr' const.
(create_dwp_hash_table, dwarf2_ranges_read)
(dwarf2_record_block_ranges): Constify.
(read_die_and_children, read_die_and_siblings_1)
(read_die_and_siblings): Make 'info_ptr' and 'new_info_ptr'
const.
(read_full_die_1, read_full_die): Make 'info_ptr' const.
(abbrev_table_read_table): Constify.
(load_partial_dies): Make 'info_ptr' const.
(read_partial_die, read_attribute_value, read_attribute): Make
'info_ptr' and return type const.
(read_address, read_initial_length)
(read_checked_initial_length_and_offset, read_offset)
(read_offset_1, read_n_bytes, read_direct_string): Make 'buf'
const.
(read_direct_string): Make 'buf' and return type const.
(read_indirect_string_at_offset, read_indirect_string_from_dwz)
(read_indirect_string): Make return type const.
(read_unsigned_leb128, read_signed_leb128): Make 'buf' const.
(read_addr_index_from_leb128, dwarf2_read_addr_index_reader): Make
'info_ptr' const.
(read_str_index): Make return type const.
(add_include_dir): Make 'include_dir' const.
(add_file_name): Make 'name' const.
(dwarf_decode_line_header): Constify.
(psymtab_include_file_name): Make return type const.
(dwarf_decode_lines_1, dwarf_decode_lines): Constify.
(dwarf2_start_subfile): Make 'filename' const.
(dwarf2_const_value_attr): Make 'bytes' const.
(read_signatured_type_reader): Make 'info_ptr' const.
(decode_locdesc): Constify.
(skip_form_bytes): Make 'bytes', 'buffer_end', and return type
const.
(skip_unknown_opcode): Make 'opcode_definitions', 'mac_ptr',
'mac_end', and return type const.
(dwarf_parse_macro_header): Make 'mac_ptr' and return type const.
(dwarf_decode_macro_bytes): Make 'mac_ptr', 'mac_end', and return
type const.
(per_cu_header_read_in): Constify.
* symfile.h (dwarf2_get_section_info): Update.
* top.c (print_gdb_configuration): New function, displays the
details about GDB configure-time parameters.
(print_gdb_version): Mention "show configuration".
* cli/cli-cmds.c (show_configuration): New function.
(_initialize_cli_cmds): Add the "show configuration" command.
* main.c (captured_main) <print_configuration>: New static var.
<long_options>: Use it.
If --configuration was given, call print_gdb_configuration.
* doc/gdb.texinfo (Mode Options): Document '-configuration'.
(Help): Document "show configuration".
(Bug Reporting): Add requirements to include the configuration
details in bug reports.
Currently, several commands take "0" or "-1" to mean "unlimited".
"show" knows when to print "unlimited":
(gdb) show height
Number of lines gdb thinks are in a page is 45.
(gdb) set height 0
(gdb) show height
Number of lines gdb thinks are in a page is unlimited.
However, the user can't herself specify "unlimited" directly:
(gdb) set height unlimited
No symbol table is loaded. Use the "file" command.
(gdb)
This patch addresses that, by adjusting the set handler for all
integer/uinteger/zuinteger_unlimited commands to accept literal
"unlimited". It also installs a completer. Presently, we complete on
symbols by default, and at
<http://sourceware.org/ml/gdb-patches/2013-03/msg00864.html> I've
shown a WIP prototype that tried to keep that half working in these
commands. In the end, it turned out to be more complicated than
justifiable, IMO. It's super rare to want to pass the value of a
variable/symbol in the program to a GDB set/show knob. That'll still
work, it's just that we won't assist with completion anymore. This
patch just sticks with the simple, and completes on "unlimited", and
nothing else. This simplification means that
"set he<tab><tab>"
is all it takes to get to:
"set height unlimited"
The patch then goes through all integer/uinteger/zuinteger_unlimited
commands in the tree, and updates both the online help and the manual
to mention that "unlimited" is accepted in addition to 0/-1. In the
cases where the command had no online help text at all, this adds it.
I've tried to make the texts read in a way that "unlimited" is
suggested before "0" or "-1" is.
Tested on x86_64 Fedora 17.
gdb/
2013-04-10 Pedro Alves <palves@redhat.com>
* cli/cli-decode.c (integer_unlimited_completer): New function.
(add_setshow_integer_cmd, add_setshow_uinteger_cmd)
(add_setshow_zuinteger_unlimited_cmd): Install the "unlimited"
completer.
* cli/cli-setshow.c: Include "cli/cli-utils.h".
(is_unlimited_literal): New function.
(do_set_command): Handle literal "unlimited" arguments.
* frame.c (_initialize_frame) <set backtrace limit>: Document
"unlimited".
* printcmd.c (_initialize_printcmd) <set print
max-symbolic-offset>: Add help text.
* record-full.c (_initialize_record_full) <set record full
insn-number-max>: Likewise.
* record.c (_initialize_record) <set record
instruction-history-size, set record function-call-history-size>:
Add help text.
* ser-tcp.c (_initialize_ser_tcp) <set tcp connect-timeout>: Add
help text.
* tracepoint.c (_initialize_tracepoint) <set trace-buffer-size>:
Likewise.
* source.c (_initialize_source) <set listsize>: Add help text.
* utils.c (initialize_utils) <set height, set width>: Likewise.
<set pagination>: Mention "set height unlimited".
* valprint.c (_initialize_valprint) <set print elements, set print
repeats>: Document "unlimited".
gdb/doc/
2013-04-10 Pedro Alves <palves@redhat.com>
* gdb.texinfo (Process Record and Replay): Document that "set
record full insn-number-max", "set record
instruction-history-size" and "set record
function-call-history-size" accept "unlimited".
(Backtrace): Document that "set backtrace limit" accepts
"unlimited".
(List): Document that "set listsize" accepts "unlimited".
(Print Settings)" Document that "set print max-symbolic-offset",
"set print elements" and "set print repeats" accept "unlimited".
(Starting and Stopping Trace Experiments): Document that "set
trace-buffer-size" accepts "unlimited".
(Remote Configuration): Document that "set tcp connect-timeout"
accepts "unlimited".
(Command History): Document that "set history size" accepts
"unlimited".
(Screen Size): Document that "set height" and "set width" accepts
"unlimited". Adjust "set pagination"'s description to suggest
"set height unlimited" instead of "set height 0".
gdb/testsuite/
2013-04-10 Pedro Alves <palves@redhat.com>
* gdb.base/completion.exp: Test "set height", "set listsize" and
"set trace-buffer-size" completion.
* gdb.base/setshow.exp: Test "set height unlimited".
* gdb.trace/trace-buffer-size.exp: Test "set trace-buffer-size
unlimited".
Gareth mentions in PR gdb/15275:
"The MI '-gdb-exit' command mi_cmd_gdb_exit() never calls disconnect_tracing()
and therefore exits correctly."
It should, so to get out of tfind mode, as quit may detach instead of
kill, and we don't want to confuse the memory/register accesses
etc. of the detach process. So we should push down the disconnect
tracing bits at least to quit_force. But we can't as is, as that
would swallow the error thrown by answering "no" to:
Trace is running but will stop on detach; detach anyway? (y or n)
So to address that, we split disconnect_tracing in two. One part that
does the query, and another part that does the rest, and we make
quit_force call the latter.
Looking at quit_force, it does several things, some of which are a bit
independent of the others. It first kills/detaches, and then writes
history, and then runs the final cleanups. It seems better to me to
do each of these things even if the previous thing throws. E.g., as
is, if something throws while detaching, then we skip writing history.
Tested on x86_64 Fedora 17.
gdb/
2013-04-10 Pedro Alves <palves@redhat.com>
* cli/cli-cmds.c (quit_command): Call query_if_trace_running
instead of disconnect_tracing.
* infcmd.c (detach_command, disconnect_command): Call
query_if_trace_running. Adjust.
* top.c: Include "tracepoint.h".
(quit_target): Delete. Contents moved ...
(quit_force): ... here. Wrap each stage of teardown in
TRY_CATCH. Call disconnect_tracing before detaching.
2013-04-10 Jan Beulich <jbeulich@suse.com>
* gas/config/tc-arm.c (encode_arm_addr_mode_3): Only reject base
register being PC when is_t or writeback, and use distinct
diagnostic for the latter case.
gas/testsuite/
2013-04-10 Jan Beulich <jbeulich@suse.com>
* gas/testsuite/gas/arm/ldst-pc.s: Add index, non-writeback
forms of various loads and stores with PC as base.
* gas/testsuite/gas/arm/ldst-pc.d: Update accordingly.
2013-04-10 Jan Beulich <jbeulich@suse.com>
* gas/config/tc-arm.c (parse_operands): Re-write
po_barrier_or_imm().
(do_barrier): Remove bogus constraint().
(do_t_barrier): Remove.
gas/testsuite/
2013-04-10 Jan Beulich <jbeulich@suse.com>
* gas/arm/barrier-bad.d: Change title.
* gas/arm/barrier-bad.s: Add immediate form of ISB and DSB as
well as one symbolic form of DSB.
* gas/arm/barrier-bad.l: Update accordingly.
* gas/arm/barrier-bad-thumb.d: Adjust title. Use barrier-bad.s as
source. Pass -mthumb to gas.
* gas/arm/barrier-bad-thumb.l: Remove.
* gas/arm/barrier-bad-thumb.s: Remove.
* gas/arm/barrier-thumb.d: Adjust title. Use barrier.s as source.
Pass -mthumb to gas.
* gas/arm/barrier-thumb.s: Remove.
2013-04-10 Hui Zhu <hui@codesourcery.com>
Yao Qi <yao@codesourcery.com>
* configure.ac: Check libbabeltrace is installed.
* config.in: Regenerate.
* configure: Regenerate.
* Makefile.in (LIBBABELTRACE): New.
(CLIBS): Add LIBBABELTRACE.
* ctf.c: Include "exec.h".
(CTF_EVENT_ID_STATUS, CTF_EVENT_ID_TSV_DEF): New macros.
(CTF_EVENT_ID_TP_DEF, ctf_save_write_int32): New macros.
(ctf_save_metadata_header): Define new type aliases in
metadata.
(ctf_write_header): Define event type "tsv_def" and "tp_def"
in metadata. Start a new faked packet for trace status.
(ctf_write_status): Write trace status to CTF.
(ctf_write_uploaded_tsv): Write TSV to CTF.
(ctf_write_uploaded_tp): Write tracepoint definition to CTF.
(ctf_write_definition_end): End the faked packet.
(ctx, ctf_iter, trace_dirname): New.
(start_pos): New variable.
(ctf_destroy, ctf_open_dir, ctf_open): New.
(SET_INT32_FIELD, SET_ARRAY_FIELD, SET_STRING_FIELD): New
macros.
(ctf_read_tsv, ctf_read_tp, ctf_close, ctf_files_info): New.
(ctf_fetch_registers, ctf_xfer_partial): New.
(ctf_get_trace_state_variable_value): New.
(ctf_get_tpnum_from_frame_event): New.
(ctf_get_traceframe_address): New.
(ctf_trace_find, ctf_has_stack): New.
(ctf_has_registers, ctf_traceframe_info, init_ctf_ops): New.
(ctf_get_trace_status, ctf_read_status): New.
(_initialize_ctf): New.
* tracepoint.c (get_tracepoint_number): New
(get_uploaded_tsv): Remove 'static'.
(struct traceframe_info, trace_regblock_size): Move it to ...
* tracepoint.h: ... here.
(get_tracepoint_number): Declare it.
(get_uploaded_tsv): Declare it.
* NEWS: Mention new configure option.
gdb/doc/
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.texinfo (Trace Files): Add "target ctf".
gdb/testsuite/
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.trace/actions.exp: Save trace data to CTF.
Change to ctf target if GDB supports, read CTF data in ctf
target, and check the actions of tracepoints.
* gdb.trace/while-stepping.exp: Likewise.
* gdb.trace/report.exp: Test GDB saves trace data to CTF
format and read CTF trace file if GDB supports.
* gdb.trace/tstatus.exp: Save trace data to CTF. If ctf
target is supported, change to ctf target, read trace data and
check output of command "tstatus".
* gdb.trace/tsv.exp: Save trace frame to CTF. If GDB supports,
read CTF data by target ctf and call check_tsv.
* gdb.trace/actions.exp (check_tracepoint): New.
(top level): Start the tracing and check the actions of
tracepoints. Save trace data to tfile format. Restart GDB
and read trace file in tfile target. Check the actions of
tracepoints again.
* gdb.trace/while-stepping.exp: Likewise.
... when !HAVE_PYTHON.
gdb/ChangeLog:
* varobj.c (update_dynamic_varobj_children) [!HAVE_PYTHON]:
Use gdb_assert_not_reached instead of invalid boolean expression.