platform/upstream/binutils.git
11 years ago* doc/c-arc.texi (ARC Directives): Revert last change and use
Andreas Schwab [Thu, 14 Mar 2013 16:17:45 +0000 (16:17 +0000)]
* doc/c-arc.texi (ARC Directives): Revert last change and use
@itemize instead of @table.
* doc/c-arm.texi (ARM-Instruction-Set): Likewise.

11 years agogdb/
Jan Kratochvil [Thu, 14 Mar 2013 14:42:48 +0000 (14:42 +0000)]
gdb/
* source.c (print_source_lines_base): Make a local copy of
symtab_to_fullname.

11 years agogdb/
Jan Kratochvil [Thu, 14 Mar 2013 14:35:17 +0000 (14:35 +0000)]
gdb/
* source.c (print_source_lines_base): Suppress "file" for TUI.

11 years agogdb/testsuite/
Yao Qi [Thu, 14 Mar 2013 13:34:06 +0000 (13:34 +0000)]
gdb/testsuite/

* config/monitor.exp (gdb_target_cmd): Remove semicolon after
'return'.
(gdb_target_monitor, gdb_load): Likewise.
* config/sid.exp (gdb_load): Likewise.
* config/slite.exp (gdb_load): Likewise.
* config/vx.exp (gdb_start, spawn_vxgdb): Likewise.
* gdb.ada/arrayidx.exp, gdb.ada/null_array.exp: Likewise.
* gdb.arch/mips-octeon-bbit.exp (single_step): Likewise.
(single_step_until): Likewise.
* gdb.arch/powerpc-d128-regs.exp: Likewise.
* gdb.arch/system-gcore.exp: Likewise.
* gdb.base/bigcore.exp (extract_heap): Likewise.
* gdb.base/break-on-linker-gcd-function.exp: Likewise.
* gdb.base/call-ar-st.exp: Likewise.
* gdb.base/call-rt-st.exp: Likewise.
* gdb.base/call-sc.exp, gdb.base/call-strs.exp: Likewise.
* gdb.base/callfuncs.exp, gdb.base/completion.exp: Likewise.
* gdb.base/condbreak.exp, gdb.base/constvars.exp: Likewise.
* gdb.base/corefile.exp: Likewise.
* gdb.base/dbx.exp (gdb_file_cmd): Likewise.
* gdb.base/exprs.exp, gdb.base/fileio.exp: Likewise.
* gdb.base/fixsection.exp: Likewise.
* gdb.base/funcargs.exp: Likewise.
* gdb.base/gcore-buffer-overflow.exp: Likewise.
* gdb.base/gcore-relro.exp: Likewise.
* gdb.base/gcore.exp, gdb.base/gdb11530.exp: Likewise.
* gdb.base/gdb11531.exp, gdb.base/gnu-ifunc.exp: Likewise.
* gdb.base/info-os.exp, gdb.base/info-proc.exp: Likewise.
* gdb.base/interp.exp, gdb.base/langs.exp:: Likewise.
* gdb.base/list.exp: Likewise.
(set_listsize): Likewise.
* gdb.base/logical.exp, gdb.base/mips_pro.exp: Likewise.
* gdb.base/miscexprs.exp, gdb.base/nodebug.exp: Likewise.
* gdb.base/opaque.exp, gdb.base/pointers.exp: Likewise.
* gdb.base/psymtab.exp, gdb.base/ptype.exp: Likewise.
* gdb.base/relational.exp, gdb.base/scope.exp: Likewise.
* gdb.base/setvar.exp: Likewise.
(test_set): Likewise.
* gdb.base/signals.exp, gdb.base/sizeof.exp: Likewise.
* gdb.base/solib-overlap.exp: Likewise.
* gdb.base/store.exp, gdb.base/structs.exp: Likewise.
* gdb.base/structs2.exp, gdb.base/volatile.exp: Likewise.
* gdb.base/watchpoint.exp (initialize): Likewise.
(test_simple_watchpoint): Likewise.
(test_disabling_watchpoints): Likewise.
(test_watchpoint_triggered_in_syscall): Likewise.
* gdb.base/whatis.exp, gdb.cp/ambiguous.exp: Likewise.
* gdb.cp/casts.exp, gdb.cp/ctti.exp: Likewise.
* gdb.cp/namespace.exp, gdb.cp/nsdecl.exp: Likewise.
* gdb.cp/psmang.exp, gdb.dwarf2/dw2-ranges.exp: Likewise.
* gdb.hp/gdb.aCC/optimize.exp: Likewise.
* gdb.hp/gdb.aCC/watch-cmd.exp: Likewise.
* gdb.hp/gdb.base-hp/callfwmall.exp: Likewise.
* gdb.hp/gdb.base-hp/pxdb.exp: Likewise.
* gdb.hp/gdb.compat/xdb1.exp: Likewise.
* gdb.hp/gdb.compat/xdb2.exp: Likewise.
* gdb.hp/gdb.compat/xdb3.exp: Likewise.
* gdb.hp/gdb.defects/bs14602.exp: Likewise.
* gdb.hp/gdb.defects/solib-d.exp: Likewise.
* gdb.mi/gdb792.exp: Likewise.
* gdb.mi/mi-inheritance-syntax-error.exp: Likewise.
* gdb.mi/mi-logging.exp, gdb.mi/mi-var-cp.exp : Likewise.
* gdb.mi/mi-var-rtti.exp, gdb.python/py-type.exp: Likewise.
* gdb.threads/gcore-thread.exp: Likewise.
(load_core): Likewise.
* gdb.threads/pthreads.exp (all_threads_running): Likewise.
(test_startup, check_control_c): Likewise.
* gdb.threads/sigstep-threads.exp: Likewise.
* gdb.threads/thread_check.exp: Likewise.
* gdb.trace/backtrace.exp, gdb.trace/change-loc.exp: Likewise.
* gdb.trace/circ.exp (run_trace_experiment): Likewise.
(set_a_tracepoint, trace_buffer_normal): Likewise.
(gdb_trace_circular_tests): Likewise.
* gdb.trace/collection.exp: Likewise.
* gdb.trace/disconnected-tracing.exp: Likewise.
* gdb.trace/infotrace.exp: Likewise.
* gdb.trace/mi-traceframe-changed.exp: Likewise.
* gdb.trace/mi-tracepoint-changed.exp: Likewise.
* gdb.trace/mi-tsv-changed.exp (test_create_delete_modify_tsv): Likewise.
* gdb.trace/packetlen.exp, gdb.trace/passc-dyn.exp: Likewise.
* gdb.trace/pending.exp, gdb.trace/report.exp: Likewise.
* gdb.trace/stap-trace.exp: Likewise.
* gdb.trace/status-stop.exp,gdb.trace/strace.exp: Likewise.
* gdb.trace/tfind.exp, gdb.trace/trace-break.exp: Likewise.
* gdb.trace/trace-buffer-size.exp: Likewise.
* gdb.trace/tspeed.exp, gdb.trace/tsv.exp: Likewise.
* gdb.trace/unavailable.exp: Likewise.
* gdb.trace/while-dyn.exp: Likewise.
* lib/fortran.exp (set_lang_fortran): Likewise.
* lib/gdb.exp (default_gdb_version, gdb_start_cmd): Likewise.
(gdb_breakpoint, gdb_reinitialize_dir): Likewise.
(default_gdb_start, get_compiler_info): Likewise.
(gdb_compile, gdb_compile_objc, gdb_reload, gdb_init): Likewise.
(get_debug_format, setup_xfail_format): Likewise.
(rerun_to_main, gdb_skip_float_test): Likewise.
(build_id_debug_filename_get, get_remotetimeout): Likewise.
* lib/java.exp (set_lang_java): Likewise.
* lib/mi-support.exp (default_mi_gdb_start): Likewise.
(mi_gdb_reinitialize_dir, mi_gdb_target_cmd): Likewise.
(mi_gdb_file_cmd, mi_gdb_test): Likewise.
(mi_run_cmd_full, mi_expect_interrupt): Likewise.
* lib/objc.exp (set_lang_objc): Likewise.
* lib/pascal.exp (set_lang_pascal): Likewise.
* lib/prompt.exp (default_prompt_gdb_start): Likewise.
* lib/trace-support.exp (gdb_trace_setactions, gdb_tfind_test): Likewise.
(gdb_readexpr, gdb_gettpnum, gdb_find_recursion_test_baseline): Likewise.

11 years ago2013-03-14 Sergio Durigan Junior <sergiodj@redhat.com>
Sergio Durigan Junior [Thu, 14 Mar 2013 11:40:08 +0000 (11:40 +0000)]
2013-03-14  Sergio Durigan Junior  <sergiodj@redhat.com>

* tracepoint.c (cmd_qtv): Initialize `val' with zero, silencing
compiler warning.

11 years agoFrom: Sergio Durigan Junior <sergiodj@redhat.com>
Sergio Durigan Junior [Thu, 14 Mar 2013 11:13:36 +0000 (11:13 +0000)]
From: Sergio Durigan Junior <sergiodj@redhat.com>
Subject: [PATCH] Fix for PR c++/15203 and PR c++/15210
Date: Sat, 09 Mar 2013 02:50:49 -0300 (5 days, 4 hours, 57 minutes ago)
Message-ID: <m3a9qdnmti.fsf@redhat.com>

Hi,

This bug was reported internally at our Bugzilla, along with a proposed
fix.  After talking to Keith about it, he investigated and came up with
another patch needed to really fix the issue on CVS HEAD.

The first part of the fix is the patch to cp-namespace.c.  It handles
the case when we are accessing a static variable inside a function
(inside a class) by the full linespec (is it right, Keith?).  E.g.:

    class foo
    {
    public:
        int bar()
        {
            static int var = 0;
        }
    };

And then, printing the value of `var':

    (gdb) print 'foo::bar()::var'

GDB would fall in an internal_error:

    gdb/cp-namespace.c:816: internal-error: cp_lookup_nested_symbol called on a non-aggregate type.

This is because `cp_lookup_nested_symbol' is not handling the case when
TYPE_CODE is either _FUNC or _METHOD.  This patch fixes it by returning
NULL in this case.

The second part of the fix is the patch to elfread.c.  It is needed
because the BSF_GNU_UNIQUE flag was added to some symbols in
<http://sourceware.org/ml/binutils/2009-06/msg00016.html>.  Because of
that, (still) the command:

    (gdb) print 'foo::bar()::var'

where `var' is a static variable returns:

    "No symbol "foo::bar()::var" in current context."

So with the second patch applied the command finally DTRT:

    (gdb) print 'foo::bar()::var'
    $1 = 0

This may not be the ideal solution, according to Keith it would be good
to implement productions on c-exp.y in order to recognize
CLASS::FUNCTION::VARIABLE, but it is a solution which works with what we
have today.

I regtested it in Fedora 17 x86_64 with -m64 and -m32, including
gdbserver, without regressions.

gdb/:
2013-03-14  Keith Seitz  <keiths@redhat.com>
    Alan Matsuoka  <alanm@redhat.com>

PR c++/15203
PR c++/15210
* cp-namespace.c (cp_lookup_nested_symbol): Handle TYPE_CODE_FUNC and
TYPE_CODE_METHOD.
* elfread.c (elf_symtab_read): Handle BSF_GNU_UNIQUE for certain
symbols.

gdb/testsuite/:
2013-03-14  Sergio Durigan Junior  <sergiodj@redhat.com>

PR c++/15203
PR c++/15210
* gdb.cp/m-static.cc (keepalive_int): New function.
(gnu_obj_1::method): New variable `sintvar', call `keepalive_int'.
* gdb.cp/m-static.exp: New test for `sintvar'.

11 years ago PR gas/15273
Nick Clifton [Thu, 14 Mar 2013 10:23:13 +0000 (10:23 +0000)]
PR gas/15273
* config/tc-arm.c (do_co_reg): Do not call check_obsolete with a
NULL message, instead just check ARM_CPU_IS_ANY directly.

11 years ago PR gas/15212
Nick Clifton [Thu, 14 Mar 2013 10:00:46 +0000 (10:00 +0000)]
PR gas/15212
* doc/c-arc.texi (ARC Directives): Use @code instead of @bullte
for table format.
* doc/c-arm.texi (ARM-Instruction-Set): Likewise.  Also add text
to the @item directives.
(ARM-Neon-Alignment): Move to correct place in the document.
* doc/c-cr16.texi (CR16 Operand Qualifiers): Fix up table
formatting.
* doc/c-tic54x.texi (TIC54X-Subsyms): Correct use of
@smallexample.

11 years agogdb/testsuite/
Yao Qi [Thu, 14 Mar 2013 09:12:21 +0000 (09:12 +0000)]
gdb/testsuite/
* gdb.trace/tstatus.exp (run_trace_experiment): Save the output
of 'tstatus' into tstatus_output.
(top level): Save the trace data to tfile.  Read trace file in
tfile target.  Check the trace status.

11 years agogdb/
Yao Qi [Thu, 14 Mar 2013 09:08:56 +0000 (09:08 +0000)]
gdb/
* tracepoint.c (tfile_write_status): Write 'stop_desc' of trace
status to tfile if trace is stopped by command 'tstop'.

11 years agogdb/
Yao Qi [Thu, 14 Mar 2013 09:06:40 +0000 (09:06 +0000)]
gdb/
* tracepoint.c (tfile_write_status): Write trace notes and user
name into tfile if they are not NULL.

11 years agogdb/
Yao Qi [Thu, 14 Mar 2013 09:02:30 +0000 (09:02 +0000)]
gdb/
2013-03-14  Hui Zhu  <hui@codesourcery.com>
    Yao Qi  <yao@codesourcery.com>

* Makefile.in (REMOTE_OBS): Add ctf.o.
(SFILES): Add ctf.c.
(HFILES_NO_SRCDIR): Add ctf.h.
* ctf.c, ctf.h: New files.
* tracepoint.c: Include 'ctf.h'.
(collect_pseudocommand): Remove static.
(trace_save_command): Parse option "-ctf".
Produce different trace file writers per option.
Adjust output message.
(trace_save_tfile, trace_save_ctf): New.
* tracepoint.h (trace_save_tfile, trace_save_ctf): Declare.
* mi/mi-main.c: Include 'ctf.h'.
(mi_cmd_trace_save): Handle option '-ctf'.  Call either
trace_save_tfile or trace_save_ctf.
* NEWS: Mention these changes.

gdb/doc/
2013-03-14  Hui Zhu  <hui@codesourcery.com>
    Yao Qi  <yao@codesourcery.com>

* gdb.texinfo (Trace Files): Add "tsave -ctf".

11 years ago * emulparams/aarch64linux.sh (LIBPATH_SUFFIX): Set to 64 for
Jakub Jelinek [Thu, 14 Mar 2013 08:56:05 +0000 (08:56 +0000)]
* emulparams/aarch64linux.sh (LIBPATH_SUFFIX): Set to 64 for
aarch64linux* emulations.

11 years agogdb/
Yao Qi [Thu, 14 Mar 2013 08:50:55 +0000 (08:50 +0000)]
gdb/
* tracepoint.c (trace_file_writer_xfree): New.
(struct tfile_writer_data): New.
(tfile_dtor, tfile_can_target_save, tfile_start): New.
(tfile_write_header, tfile_write_regblock_type): New.
(tfile_write_status, tfile_write_uploaded_tsv): New.
(tfile_write_uploaded_tp, tfile_write_definition_end): New.
(tfile_write_raw_data, (tfile_end): New.
(tfile_write_ops): New global variable.
(TRACE_WRITE_R_BLOCK): New macro.
(TRACE_WRITE_M_BLOCK_HEADER): New macro.
(TRACE_WRITE_M_BLOCK_MEMORY): New macro.
(TRACE_WRITE_V_BLOCK): New macro.
(trace_save): Add extra one parameter WRITER.  Make it static.
Use WRITER to writer trace.
(tfile_trace_file_writer_new): New.
(trace_save_command): Caller update.
(trace_save_tfile): Write trace data in TFILE format.
* tracepoint.h (struct trace_frame_write_ops): New.
(struct trace_file_write_ops): New.
(struct trace_file_writer): New.
(trace_save): Remove its declaration.
(trace_save_tfile): Declare it.
* mi/mi-main.c (mi_cmd_trace_save): Call trace_save_tfile
instead of trace_save.

11 years ago*** empty log message ***
gdbadmin [Thu, 14 Mar 2013 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Wed, 13 Mar 2013 23:00:04 +0000 (23:00 +0000)]
daily update

11 years agoMake hppa-hpux-nat.c:hppa_hpux_save_state_offset static.
Pedro Alves [Wed, 13 Mar 2013 18:50:16 +0000 (18:50 +0000)]
Make hppa-hpux-nat.c:hppa_hpux_save_state_offset static.

Dave reports:

> There is one small (...) issue that needs fixing:
>
> gcc -g -O2   -I. -I../../src/gdb -I../../src/gdb/common -I../../src/gdb/config -DLOCALEDIR="\"/opt/gnu64/share/locale\"" -DHAVE_CONFIG_H -I../../src/gdb/../include/opcode -I../../src/gdb/../opcodes/.. -I../../src/gdb/../readline/.. -I../bfd -I../../src/gdb/../bfd -I../../src/gdb/../include -I../libdecnumber -I../../src/gdb/../libdecnumber  -I../../src/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -Werror -c -o hppa-hpux-nat.o -MT hppa-hpux-nat.o -MMD -MP -MF .deps/hppa-hpux-nat.Tpo ../../src/gdb/hppa-hpux-nat.c
> ../../src/gdb/hppa-hpux-nat.c:45:1: error: no previous prototype for 'hppa_hpux_save_state_offset' [-Werror=missing-prototypes]
> cc1: all warnings being treated as errors
>
> Believe the function should be static.

gdb/
2013-03-13  Pedro Alves  <palves@redhat.com>

* hppa-hpux-nat.c (hppa_hpux_save_state_offset): Make static.

11 years agoFix completer.c FIXME, and invalid pointer to pointer conversion.
Pedro Alves [Wed, 13 Mar 2013 18:38:12 +0000 (18:38 +0000)]
Fix completer.c FIXME, and invalid pointer to pointer conversion.

As mentioned in the previous patch, I grepped for "\*\*) &" and found
one hit in completer.c.

I was about to post a patch that simply made
current_demangling_style_string const, and cast away constness at the
xfree site.  However, looking deeper, it seem to be there's a lot of
dead code in the file.

First, all external callers of set_demangling_style are found in the
stabs reader, commented out for over 12 years:

  http://sourceware.org/ml/gdb-patches/2000-12/msg00214.html

I don't think it's likely we'll ever make the older mangling schemes
work for stabs.  If we do, we can rediscuss the approach then.

Then, set_demangling_command has special handling for unknown
demangling styles, but "set demangle-style" is an enum command, and
with those, the user can only specify a known enumeration value, by
design:

  (gdb) set demangle-style gangnam-style
  Undefined item: "gangnam-style".

This patch removes all that dead code, then makes
current_demangling_style_string point to an element of
demangling_style_names, as the FIXME suggests, and then makes
current_demangling_style_string, removing the need for the 'const char
**' cast.

gdb/
2013-03-13  Pedro Alves  <palves@redhat.com>

* dbxread.c (read_ofile_symtab, process_one_symbol): Remove
commented out code.
* demangle.c (current_demangling_style_string): Make it const.
(set_demangling_command): Assert the demangling style is known.
Remove all handling of unknown styles.  Set
'current_demangling_style_string' to an element of the
demangling_style_names array.
(set_demangling_style): Delete.
(_initialize_demangler): Set current_demangling_style_string to the
element of the demangling_style_names array that corresponds to
the default demangling style.  Remove FIXME note.  Don't call
set_demangling_style.
* gdb-demangle.h (set_demangling_style): Remove declaration.

11 years agoExtraneous NULL in linux_target_ops when HAVE_LINUX_BTRACE not defined
Joel Brobecker [Wed, 13 Mar 2013 18:37:54 +0000 (18:37 +0000)]
Extraneous NULL in linux_target_ops when HAVE_LINUX_BTRACE not defined

This fixes the followin error when HAVE_LINUX_BTRACE is not defined:

    linux-low.c:5943: error: excess elements in struct initializer
    linux-low.c:5943: error: (near initialization for 'linux_target_ops')

gdb/gdbserver/ChangeLog:

        * linux-low.c (linux_target_ops) [!HAVE_LINUX_BTRACE]:
        Remove extraneous NULL element.

11 years agoConstify strings in tracepoint.c, lookup_cmd and the completers.
Pedro Alves [Wed, 13 Mar 2013 18:34:55 +0000 (18:34 +0000)]
Constify strings in tracepoint.c, lookup_cmd and the completers.

This is sort of a continuation of Keith's parse_exp_1 constification
patch.  It started out by undoing these bits:

  @@ -754,9 +754,12 @@ validate_actionline (char **line, struct
      tmp_p = p;
      for (loc = t->base.loc; loc; loc = loc->next)
        {
  -       p = tmp_p;
  -       exp = parse_exp_1 (&p, loc->address,
  +       const char *q;
  +
  +       q = tmp_p;
  +       exp = parse_exp_1 (&q, loc->address,
     block_for_pc (loc->address), 1);
  +       p = (char *) q;

and progressively making more things const upwards, fixing fallout,
rinse repeat, until GDB built again (--enable-targets=all).

That ended up constifying lookup_cmd/add_cmd and (lots of) friends,
and the completers.

I didn't try to constify the command hooks themselves, because I know
upfront there are commands that write to the command string argument,
and I think I managed to stop at a nice non-hacky split point already.

I think the only non-really-super-obvious changes are
tracepoint.c:validate_actionline, and tracepoint.c:trace_dump_actions.

The rest is just mostly about 'char *' => 'const char *', 'char **'=>
'const char **', and the occasional (e.g., deprecated_cmd_warning)
case of 'char **'=> 'const char *', where/when I noticed that nothing
actually cares about the pointer to pointer output.

Tested on x86_64 Fedora 17, native and gdbserver.

gdb/
2013-03-13  Pedro Alves  <palves@redhat.com>

* ada-lang.c (struct add_partial_datum) <text, text0, word>: Make
fields const.
(ada_make_symbol_completion_list): Make "text0" parameter const.
* ax-gdb.c (agent_eval_command_one): Make "exp" parameter const.
* breakpoint.c (condition_completer): Make "text" and "word"
parameters const.  Adjust.
(check_tracepoint_command): Adjust to validate_actionline
prototype change.
(catch_syscall_completer): Make "text" and "word" parameters
const.
* cli/cli-cmds.c (show_user): Make "comname" local const.
(valid_command_p): Make "command" parameter const.
(alias_command): Make "alias_prefix" and "command_prefix" locals
const.
* cli/cli-decode.c (add_cmd): Make "name" parameter const.
(add_alias_cmd): Make "name" and "oldname" parameters const.
Adjust.  No longer make copy of OLDNAME.
(add_prefix_cmd, add_abbrev_prefix_cmd, add_set_or_show_cmd)
(add_setshow_cmd_full, add_setshow_enum_cmd)
(add_setshow_auto_boolean_cmd, add_setshow_boolean_cmd)
(add_setshow_filename_cmd, add_setshow_string_cmd)
(add_setshow_string_noescape_cmd)
(add_setshow_optional_filename_cmd, add_setshow_integer_cmd)
(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd)
(add_setshow_zuinteger_unlimited_cmd, add_setshow_zuinteger_cmd)
(delete_cmd, add_info, add_info_alias, add_com, add_com_alias):
Make "name" parameter const.
(help_cmd): Rename "command" parameter to "arg".  New const local
"command".
(find_cmd): Make "command" parameter const.
(lookup_cmd_1): Make "text" parameter pointer to const.  Adjust to
deprecated_cmd_warning prototype change.
(undef_cmd_error): Make "cmdtype" parameter const.
(lookup_cmd): Make "line" parameter const.
(deprecated_cmd_warning): Change type of "text" parameter to
pointer to const char, from pointer to pointer to char.  Adjust.
(lookup_cmd_composition): Make "text" parameter const.
(complete_on_cmdlist, complete_on_enum): Make "text" and "word"
parameters const.
* cli/cli-decode.h (struct cmd_list_element) <name>: Make field
const.
* cli/cli-script.c (validate_comname): Make "tem" local const.
(define_command): New const local "tem_c".  Use it in calls to
lookup_cmd.
(document_command): Make "tem" and "comfull" locals const.
(show_user_1): Make "prefix" and "name" parameters const.
* cli-script.h (show_user_1): Make "prefix" and "name" parameters
const.
* command.h (add_cmd, add_alias_cmd, add_prefix_cmd)
(add_abbrev_prefix_cmd, completer_ftype, lookup_cmd, lookup_cmd_1)
(deprecated_cmd_warning, lookup_cmd_composition, add_com)
(add_com_alias, add_info, add_info_alias, complete_on_cmdlist)
(complete_on_enum, add_setshow_enum_cmd)
(add_setshow_auto_boolean_cmd, add_setshow_boolean_cmd)
(add_setshow_filename_cmd, add_setshow_string_cmd)
(add_setshow_string_noescape_cmd)
(add_setshow_optional_filename_cmd, add_setshow_integer_cmd)
(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd)
(add_setshow_zuinteger_cmd, add_setshow_zuinteger_unlimited_cmd):
Change prototypes, constifying strings.
* completer.c (noop_completer, filename_completer): Make "text"
and "prefix" parameters const.
(location_completer, expression_completer)
(complete_line_internal): Make "text" and "prefix" parameters
const and adjust.
(command_completer, signal_completer): Make "text" and "prefix"
parameters const.
* completer.h (noop_completer, filename_completer)
(expression_completer, location_completer, command_completer)
(signal_completer): Change prototypes.
* corefile.c (complete_set_gnutarget): Make "text" and "word"
parameters const.
* cp-abi.c (cp_abi_completer): Likewise.
* expression.h (parse_expression_for_completion): Change
prototype.
* f-lang.c (f_make_symbol_completion_list): Make "text" and "word"
parameters const.
* infcmd.c (_initialize_infcmd): Make "cmd_name" local const.
* infrun.c (handle_completer): Make "text" and "word" parameters
const.
* interps.c (interpreter_completer): Make "text" and "word"
parameters const.
* language.h (struct language_defn)
<la_make_symbol_completion_list>: Make "text" and "word"
parameters const.
* parse.c (parse_exp_1): Move const hack to parse_exp_in_context.
(parse_exp_in_context): Rename to ...
(parse_exp_in_context_1): ... this.
(parse_exp_in_context): Reimplement, with const hack from
parse_exp_1.
(parse_expression_for_completion): Make "string" parameter const.
* printcmd.c (decode_format): Make "string_ptr" parameter pointer
to pointer to const char.  Adjust.
(print_command_1): Make "exp" parameter const.
(output_command): Rename to ...
(output_command_const): ... this.  Make "exp" parameter const.
(output_command): Reimplement.
(x_command): Adjust.
(display_command): Rename "exp" parameter to "arg".  New "exp"
local, const version of "arg".
* python/py-auto-load.c (gdbpy_initialize_auto_load): Make
"cmd_name" local const.
* python/py-cmd.c (cmdpy_destroyer): Cast const away in xfree
call.
(cmdpy_completer): Make "text" and "word" parameters const.
(gdbpy_parse_command_name): Make "prefix_text2" local const.
* python/py-param.c (add_setshow_generic): Make "tmp_name" local
const.
* remote.c (_initialize_remote): Make "cmd_name" local const.
* symtab.c (language_search_unquoted_string): Make "text" and "p"
parameters const.  Adjust.
(completion_list_add_fields): Make "sym_text", "text" and "word"
parameters const.
(struct add_name_data) <sym_text, text, word>: Make fields const.
(default_make_symbol_completion_list_break_on): Make "text" and
"word" parameters const.  Adjust locals.
(default_make_symbol_completion_list)
(make_symbol_completion_list, make_symbol_completion_type)
(make_symbol_completion_list_fn): Make "text" and "word"
parameters const.
(make_file_symbol_completion_list): Make "text", "word" and
"srcfile" parameters const.  Adjust locals.
(add_filename_to_list): Make "text" and "word" parameters const.
(struct add_partial_filename_data) <text, word>: Make fields
const.
(make_source_files_completion_list): Make "text" and "word"
parameters const.
* symtab.h (default_make_symbol_completion_list_break_on)
(default_make_symbol_completion_list, make_symbol_completion_list)
(make_symbol_completion_type enum type_code)
(make_symbol_completion_list_fn make_file_symbol_completion_list)
(make_source_files_completion_list): Change prototype.
* top.c (execute_command): Adjust to pass pointer to pointer to
const char to lookup_cmd, and to deprecated_cmd_warning prototype
change.
(set_verbose): Make "cmdname" local const.
* tracepoint.c (decode_agent_options): Make "exp" parameter const,
and adjust.
(validate_actionline): Make "line" parameter a pointer to const
char, and adjust.
(encode_actions_1): Make "action_exp" local const, and adjust.
(encode_actions): Adjust.
(replace_comma): Delete.
(trace_dump_actions): Make "action_exp" and "next_comma" locals
const, and adjust.  Don't frob the action string while splitting
it at commas.  Instead, make a copy of each split substring in
turn.
(trace_dump_command): Adjust to validate_actionline prototype
change.
* tracepoint.h (decode_agent_options, decode_agent_options)
(encode_actions, validate_actionline): Change prototypes.
* valprint.h (output_command): Delete declaration.
(output_command_const): Declare.
* value.c (function_destroyer): Cast const away in xfree call.

11 years ago * gdb.texinfo (Maintenance Commands): Add missing ')' for
Keith Seitz [Wed, 13 Mar 2013 17:55:50 +0000 (17:55 +0000)]
* gdb.texinfo (Maintenance Commands): Add missing ')' for
"maint agent" reference to Dynamic printf.

11 years agoMore invalid pointer to pointer conversions.
Pedro Alves [Wed, 13 Mar 2013 16:45:11 +0000 (16:45 +0000)]
More invalid pointer to pointer conversions.

As a follow up to:

  http://sourceware.org/ml/gdb-patches/2013-03/msg00449.html

In a nutshell, casts between 'char **' <-> 'unsigned char **' and
'char **' <-> 'const char **' are invalid.

I grepped for "\*\*) &" and found these.  There's another one in
demangle.c, but I've split fixing that one to a separate patch.

I think the ada_decode_symbol change is perhaps the one that could be
surprising.  The function's description has this comment, which makes
things much clearer:

   The GSYMBOL parameter is "mutable" in the C++ sense: logically
   const, but nevertheless modified to a semantically equivalent form
   when a decoded name is cached in it.  */

 const char *
 ada_decode_symbol (const struct general_symbol_info *gsymbol)

With that out of the way, I think the patch ends up being pretty
obvious.

Tested on x86_64 Fedora 17.

gdb/
2013-03-13  Pedro Alves  <palves@redhat.com>

* ada-lang.c (ada_decode_symbol): Cast away constness of GSYMBOL
rather than casting 'const char * const *' to 'const char **'.
* ada-lex.l (processInt): Make "trailer" local const.  Remove
'const char **' cast.
* arm-linux-tdep.c (arm_stap_parse_special_token): Add 'char *'
locals, and use those as strtol output pointer, instead than doing
invalid casts to from 'const char **' to 'char **'.
(_initialize_demangle): Remove cast.
* i386-tdep.c (i386_stap_parse_special_token): : Add 'char *'
locals, and use those as strtol output pointer, instead than doing
invalid casts to from 'const char **' to 'char **'.
* solib-dsbt.c (dsbt_get_initial_loadmaps): Remove 'gdb_byte**'
casts.
* stap-probe.c (stap_parse_register_operand)
(stap_parse_single_operand): Likewise.

11 years ago * tracepoint.c (tfile_get_trace_state_variable_value): Look for
Yao Qi [Wed, 13 Mar 2013 03:40:27 +0000 (03:40 +0000)]
* tracepoint.c (tfile_get_trace_state_variable_value): Look for
the last matched 'V' blcok in trace frame.

gdb/gdbserver:

* tracepoint.c (traceframe_read_tsv): Look for the last matched
'V' block in trace frame.

gdb/testsuite:

* gdb.trace/tsv.exp (check_tsv): New.
(top level): Save a tfile on current trace session. Call
check_tsv on live target.  Load the tfile with target tfile
and call check_tsv again.

11 years agogdb/testsuite/
Yao Qi [Wed, 13 Mar 2013 03:25:13 +0000 (03:25 +0000)]
gdb/testsuite/
2013-03-13  Yao Qi  <yao@codesourcery.com>

* gdb.trace/tsv.exp: Remove code unrelated to testing TSV.
Replace some "gdb_test" with "gdb_test_no_output".

11 years ago*** empty log message ***
gdbadmin [Wed, 13 Mar 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Tue, 12 Mar 2013 23:00:04 +0000 (23:00 +0000)]
daily update

11 years ago * powerpc.cc (is_branch_reloc): Forward declare.
Alan Modra [Tue, 12 Mar 2013 22:46:19 +0000 (22:46 +0000)]
* powerpc.cc (is_branch_reloc): Forward declare.
(Target_powerpc::do_can_check_for_function_pointers): New predicate.
(Target_powerpc::Scan::local_reloc_may_be_function_pointer): Return
false for 64-bit, true for 32-bit non-branch relocs.
(Target_powerpc::Scan::global_reloc_may_be_function_pointer): Likewise.
* testsuite/Makefile.am (icf_test): Use linker map file instead of
nm output.
(icf_safe_test): Generate linker map file as well as nm output.
(icf_safe_so_test): Likewise.
* testsuite/Makefile.in: Regenerate.
* testsuite/icf_test.sh: Parse linker map file to determine
section folding.
* testsuite/icf_safe_test.sh: Likewise.  Expect folding for PowerPC.
* testsuite/icf_safe_so_test.sh: Likewise.
(X86_32_or_ARM_specific_safe_fold): Merge into..
(arch_specific_safe_fold): ..this.
(X86_64_specific_safe_fold): Delete unused function.

11 years agoUpdate NEWS file following GDB 7.6 branch creation.
Joel Brobecker [Tue, 12 Mar 2013 22:36:27 +0000 (22:36 +0000)]
Update NEWS file following GDB 7.6 branch creation.

gdb/ChangeLog:

        * NEWS: Create a new section for the next release branch.
        Rename the section of the current branch, now that it has
        been cut.

11 years agoRecord GDB 7.6 branch creation. Bump version number to 7.6.50.20130312-cvs.
gdbadmin [Tue, 12 Mar 2013 22:23:41 +0000 (22:23 +0000)]
Record GDB 7.6 branch creation. Bump version number to 7.6.50.20130312-cvs.

11 years ago2013-03-12 Sebastian Huber <sebastian.huber@embedded-brains.de>
Sandra Loosemore [Tue, 12 Mar 2013 21:34:58 +0000 (21:34 +0000)]
2013-03-12  Sebastian Huber <sebastian.huber@embedded-brains.de>

gas/testsuite/
* gas/nios2/nios2.exp: Use run_dump_tests.
* gas/nios2/mov.d: Delete file.
* gas/nios2/mov.s: Likewise.
* gas/nios2/rol.d: Likewise.
* gas/nios2/rol.s: Likewise.
* gas/nios2/add.d: Check instruction values.
* gas/nios2/align_fill.d: Likewise.
* gas/nios2/and.d: Likewise.
* gas/nios2/branch.d: Likewise.
* gas/nios2/bret.d: Likewise.
* gas/nios2/cache.d: Likewise.
* gas/nios2/call.d: Likewise.
* gas/nios2/call26.d: Likewise.
* gas/nios2/cmp.d: Likewise.
* gas/nios2/comments.d: Likewise.
* gas/nios2/complex.d: Likewise.
* gas/nios2/ctl.d: Likewise.
* gas/nios2/custom.d: Likewise.
* gas/nios2/etbt.d: Likewise.
* gas/nios2/flushda.d: Likewise.
* gas/nios2/jmp.d: Likewise.
* gas/nios2/ldb.d: Likewise.
* gas/nios2/ldh.d: Likewise.
* gas/nios2/ldw.d: Likewise.
* gas/nios2/lineseparator.d: Likewise.
* gas/nios2/movi.d: Likewise.
* gas/nios2/movia.d: Likewise.
* gas/nios2/mul.d: Likewise.
* gas/nios2/nor.d: Likewise.
* gas/nios2/or.d: Likewise.
* gas/nios2/registers.d: Likewise.
* gas/nios2/ret.d: Likewise.
* gas/nios2/rotate.d: Likewise.
* gas/nios2/stb.d: Likewise.
* gas/nios2/sth.d: Likewise.
* gas/nios2/stw.d: Likewise.
* gas/nios2/sub.d: Likewise.
* gas/nios2/sync.d: Likewise.
* gas/nios2/trap.d: Likewise.
* gas/nios2/tret.d: Likewise.
* gas/nios2/xor.d: Likewise.

11 years ago2013-03-12 Sebastian Huber <sebastian.huber@embedded-brains.de>
Sandra Loosemore [Tue, 12 Mar 2013 19:18:57 +0000 (19:18 +0000)]
2013-03-12  Sebastian Huber <sebastian.huber@embedded-brains.de>

include/
* opcode/nios2.h: Edit comment.

gas/
* config/tc-nios2.c (nios2_consume_arg): Delete 'k' case.  Add 'o'
case.  Add default BAD_CASE to switch.

gas/testsuite/
* gas/nios2/break.d: Check instruction values.

11 years ago * mi/mi-cmds.h (mi_execute_command): Make "cmd" const.
Keith Seitz [Tue, 12 Mar 2013 18:50:39 +0000 (18:50 +0000)]
* mi/mi-cmds.h (mi_execute_command): Make "cmd" const.
* mi/mi-interp.c (mi_interpreter_exec): Make "command" const.
Remove temporary copy of input string.
(mi_execute_command_wrapper): Make "cmd" const.
* mi/mi-main.c (mi_execute_command): Make "string_ptr" const.
* mi/mi-parse.c (mi_parse_argv): Make "args" const.
Use const strings.
(mi_parse): Make "cmd" const.
Use const strings.
* mi/mi-parse.h (mi_parse): Make "cmd" const.

11 years ago * ada-lang.c (ada_read_renaming_var_value): Pass const
Keith Seitz [Tue, 12 Mar 2013 17:39:45 +0000 (17:39 +0000)]
* ada-lang.c (ada_read_renaming_var_value): Pass const
pointer to expression string to parse_exp_1.
(create_excep_cond_exprs): Likewise.
* ax-gdb.c (agent_eval_command_one): Likewise.
(maint_agent_printf_command): Likewise.
Constify much of the string handling/parsing.
* breakpoint.c (set_breakpoint_condition): Pass const
pointer to expression string to parse_exp_1.
(update_watchpoint): Likewise.
(parse_cmd_to_aexpr): Constify string handling.
Pass const pointer to parse_exp_1.
(init_breakpoint_sal): Pass const pointer to parse_exp_1.
(find_condition_and_thread): Likewise.
Make TOK const.
(watch_command_1): Make "arg" const.
Constify string handling.
Copy the expression string instead of changing the input
string.
(update_breakpoint_location): Pass const pointer to
parse_exp_1.
* eval.c (parse_and_eval_address): Make "exp" const.
(parse_to_comma_and_eval): Make "expp" const.
(parse_and_eval): Make "exp" const.
* expression.h (parse_expression): Make argument const.
(parse_exp_1): Make first argument const.
* findcmd.c (parse_find_args): Treat "args" as const.
* linespec.c (parse_linespec): Pass const pointer to
linespec_expression_to_pc.
(linespec_expression_to_pc): Make "exp_ptr" const.
* parse.c (parse_exp_1): Make "stringptr" const.
Make a copy of the expression to pass to parse_exp_in_context until
this whole interface can be constified.
(parse_expression): Make "string" const.
* printcmd.c (ui_printf): Treat "arg" as const.
Handle const strings.
* tracepoint.c (validate_actionline): Pass const pointer to
all calls to parse_exp_1.
(encode_actions_1): Likewise.
* value.h (parse_to_comma_and_eval): Make argument const.
(parse_and_eval_address): Likewise.
(parse_and_eval): Likewise.
* varobj.c (varobj_create): Pass const pointer to parse_exp_1.
(varobj_set_value): Likewise.
* cli/cli-cmds.c (disassemble_command): Treat "arg" as const and
constify string handling.
Pass const pointers to parse_and_eval_address and
parse_to_comman_and_eval.
* cli/cli-utils.c (skip_to_space): Rename to ...
(skip_to_space_const): ... this. Handle const strings.
* cli/cli-utils.h (skip_to_space): Turn into macro which invokes
skip_to_space_const.
(skip_to_space_const): Declare.
* common/format.c (parse_format_string): Make "arg" const.
Handle const strings.
* common/format.h (parse_format_string): Make "arg" const.
* gdbserver/ax.c (ax_printf): Make "format" const.
* python/python.c (gdbpy_parse_and_eval): Do not make a copy
of the expression string.

11 years ago2013-03-12 Hui Zhu <hui@codesourcery.com>
Hui Zhu [Tue, 12 Mar 2013 15:44:06 +0000 (15:44 +0000)]
2013-03-12  Hui Zhu  <hui@codesourcery.com>

* dwarf2loc.c (dwarf2_compile_expr_to_ax): Update error message.

11 years agoEliminate warning message.
Michael Eager [Tue, 12 Mar 2013 15:19:23 +0000 (15:19 +0000)]
Eliminate warning message.

* opcodes/mips-dis.c (print_insn_args): Modify def of reg.

11 years ago2013-03-12 Yao Qi <yao@codesourcery.com>
Hui Zhu [Tue, 12 Mar 2013 14:44:56 +0000 (14:44 +0000)]
2013-03-12  Yao Qi  <yao@codesourcery.com>
    Hui Zhu  <hui@codesourcery.com>

* dwarf2loc.c (access_memory): Change nbits to nbytes in gdb_assert.
(dwarf2_compile_expr_to_ax): Call access_memory in DW_OP_deref and
DW_OP_deref_size.

11 years agoAllow 'thread' to be used as a variable name in expressions.
Paul N. Hilfinger [Tue, 12 Mar 2013 09:03:11 +0000 (09:03 +0000)]
Allow 'thread' to be used as a variable name in expressions.

GDB treats the identifiers 'if', 'thread', and 'task' unconditionally
as expression delimiters in Ada mode, which is correct for 'if' and 'task',
but wrong for 'thread' in cases such as

      print thread

Borrowing from c-exp.y, we observe that 'thread' must be followed by
numerals, whereas identifiers never are and treat them as delimiters
only in that case.

In the process, the current also refactors and incidentally fixes the
code for rewinding the input to before the delimiting tokens.  For
example, the code

      watch expr if i > 2

fails because the input is only rewound to just before the 'i',
leaving the 'if' as part of the expression (and thus making the
rest look like trailing junk rather than a conditional clause).

gdb/ChangeLog:

    * ada-lex.l (rules): Only recognize 'thread' as a
    delimiter when followed by numerals, as for c-exp.y.
    Use new rewind_to_char function to rewind the input for
    expression-delimiting tokens.
    (rewind_to_char): New function.

gdb/testsuite/ChangeLog:

    * gdb.ada/expr_delims.exp: New file.
    * gdb.ada/expr_delims/foo.adb: New file.
    * gdb.ada/expr_delims/pck.ads: New file.
    * gdb.ada/expr_delims/pck.adb: New file.

11 years ago2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
Sandra Loosemore [Tue, 12 Mar 2013 02:41:26 +0000 (02:41 +0000)]
2013-03-11  Sebastian Huber <sebastian.huber@embedded-brains.de>

include/
* opcode/nios2.h (OPX_WRPRS): New define.
(OP_MATCH_WRPRS): Likewise.

opcodes/
* nios2-opc.c (nios2_builtin_opcodes): Add entry for wrprs.

gas/
* config/tc-nios2.c (nios2_assemble_args_ds): New function.
(nios2_arg_info_structs): Add "d,s" and "d,s,E" entries.

gas/testsuite/
* gas/nios2/nios2.exp: Run wrprs.
* gas/nios2/wrprs.d: New file.
* gas/nios2/wrprs.s: Likewise.

11 years ago2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
Sandra Loosemore [Tue, 12 Mar 2013 02:20:08 +0000 (02:20 +0000)]
2013-03-11  Sebastian Huber <sebastian.huber@embedded-brains.de>

include/
* opcode/nios2.h (OP_RDPRS): New define.
(OP_MATCH_RDPRS): Likewise.

opcodes/
* nios2-opc.c (nios2_builtin_opcodes): Add entry for rdprs.

gas/testsuite/
* gas/nios2/nios2.exp: Run rdprs.
* gas/nios2/rdprs.d: New file.
* gas/nios2/rdprs.s: Likewise.

11 years ago2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
Sandra Loosemore [Tue, 12 Mar 2013 01:41:41 +0000 (01:41 +0000)]
2013-03-11  Sebastian Huber <sebastian.huber@embedded-brains.de>

opcodes/
* nios2-opc.c (nios2_builtin_regs): Add sstatus alias for ba register.

gas/testsuite/
* gas/nios2/nios2.exp: Run registers.
* gas/nios2/registers.d: New file.
* gas/nios2/registers.s: Likewise.

11 years ago * gc.h (gc_process_relocs): Look through function descriptors
Alan Modra [Tue, 12 Mar 2013 00:42:14 +0000 (00:42 +0000)]
* gc.h (gc_process_relocs): Look through function descriptors
to determine shndx, symvalue and addend used by ICF.  Tidy
variable duplication.

11 years ago*** empty log message ***
gdbadmin [Tue, 12 Mar 2013 00:00:37 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Mon, 11 Mar 2013 23:00:05 +0000 (23:00 +0000)]
daily update

11 years ago * gdb.texinfo (General Query Packets): Don't use colon in index
Eli Zaretskii [Mon, 11 Mar 2013 19:43:53 +0000 (19:43 +0000)]
* gdb.texinfo (General Query Packets): Don't use colon in index
entries visible to Info format.

11 years ago * watchpoint.exp (test_no_hw_watchpoints): Add test using
Keith Seitz [Mon, 11 Mar 2013 19:02:22 +0000 (19:02 +0000)]
* watchpoint.exp (test_no_hw_watchpoints): Add test using
both condition and thread.  Then delete the watchpoint.

11 years agogdb/
Jan Kratochvil [Mon, 11 Mar 2013 18:49:37 +0000 (18:49 +0000)]
gdb/
* configure: Regenerate.
* configure.ac (check dynamic export flag): Link python test with
$PYTHON_LIBS.

11 years ago * linespec.c (find_linespec_symbols): Call find_function_symbols
Doug Evans [Mon, 11 Mar 2013 18:24:59 +0000 (18:24 +0000)]
* linespec.c (find_linespec_symbols): Call find_function_symbols
first, and then call lookup_prefix_sym/find_method.

11 years agoAvoid invalid pointer to pointer conversions.
Pedro Alves [Mon, 11 Mar 2013 12:22:20 +0000 (12:22 +0000)]
Avoid invalid pointer to pointer conversions.

Casts between 'char **' <-> 'unsigned char **' and 'char **' <-> const
char **' are actually invalid:

  http://gcc.gnu.org/ml/gcc-help/2013-03/msg00118.html

In a nutshell, char (and variants) can alias anything, but pointers to
chars get no special treatment (cf. C99/N1256, 6.5/7).

Turns out older gcc's actually warn/complain on these constructs,
though newer one's don't:

  http://sourceware.org/ml/gdb-patches/2013-03/msg00429.html
  http://sourceware.org/ml/gdb-patches/2013-03/msg00430.html

This patch fixes the cases I added last week.  It also fixes one other
preexisting case in charset.c, though it seems even older gccs don't
complain of char * <-> const char * aliasing.

Tested on x86_64 Fedora 17.

gdb/
2013-03-11  Pedro Alves  <palves@redhat.com>

* charset.c (convert_between_encodings): Don't cast between
different pointer to pointer types.  Instead, make the 'inp' local
be of the type iconv expects.
(wchar_iterate): Don't cast between different pointer to pointer
types.  Instead, use new pointer local of the type iconv expects.
* target.c (target_read_stralloc, target_fileio_read_stralloc):
Add new local of type char pointer, and use it to get a
char/string view of the byte buffer, instead of casting between
pointer to pointer types.

11 years ago2013-03-11 Hafiz Abid Qadeer <abidh@codesourcery.com>
Hafiz Abid Qadeer [Mon, 11 Mar 2013 12:20:52 +0000 (12:20 +0000)]
2013-03-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>

* remote.c (remote_set_trace_buffer_size): Move != operator
to the start of next line to fix an ARI warning.

11 years agoAdd support for AArch32 CRC instruction in ARMv8.
Kyrylo Tkachov [Mon, 11 Mar 2013 11:09:33 +0000 (11:09 +0000)]
Add support for AArch32 CRC instruction in ARMv8.

gas/ChangeLog
2013-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* config/tc-arm.c (crc_ext_armv8): New feature set.
(UNPRED_REG): New macro.
(do_crc32_1): New function.
(do_crc32b, do_crc32h, do_crc32w, do_crc32cb,
do_crc32ch, do_crc32cw): Likewise.
(TUEc): New macro.
(insns): Add entries for crc32 mnemonics.
(arm_extensions): Add entry for crc.

include/opcode/ChangeLog
2013-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* arm.h (CRC_EXT_ARMV8): New constant.
(ARCH_CRC_ARMV8): New macro.

opcodes/ChangeLog
2013-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* arm-dis.c (arm_opcodes): Add entries for CRC instructions.
(thumb32_opcodes): Likewise.
(print_insn_thumb32): Handle 'S' control char.

gas/testsuite/ChangeLog
2013-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* gas/arm/crc32-bad.d: New file.
* gas/arm/crc32-bad.l: Likewise.
* gas/arm/crc32-bad.s: Likewise.
* gas/arm/crc32.d: Likewise.
* gas/arm/crc32.s: Likewise.

11 years agoAdd tests for the new record-btrace target.
Markus Metzger [Mon, 11 Mar 2013 08:59:00 +0000 (08:59 +0000)]
Add tests for the new record-btrace target.

testsuite/
* Makefile.in: Add btrace testsuite.
* configure: Regenerated.
* configure.ac: Add btrace testsuite.
* gdb.btrace/Makefile.in: New file.
* gdb.btrace/enable.c: New file.
* gdb.btrace/enable.exp: New file.
* gdb.btrace/function_call_history.c: New file.
* gdb.btrace/function_call_history.exp: New file.
* gdb.btrace/instruction_history.c: New file.
* gdb.btrace/instruction_history.exp: New file.
* gdb.btrace/instruction_history.S: New file.
* lib/gdb.exp: Add btrace skip proc.

11 years agoDocument changes to the record target resulting from the renaming into
Markus Metzger [Mon, 11 Mar 2013 08:55:36 +0000 (08:55 +0000)]
Document changes to the record target resulting from the renaming into
record-full.

Document two new record sub-commands "record instruction-history" and
"record function-call-history" and two associated set/show commands
"set record instruction-history-size" and "set record
function-call-history-size".

Add this to NEWS.

gdb/
* NEWS: Add record changes.

doc/
* gdb.texinfo (Process Record and Replay): Document record
changes.

11 years agoAdd a disassembly flag to omit the pc prefix and use it in the "record
Markus Metzger [Mon, 11 Mar 2013 08:53:17 +0000 (08:53 +0000)]
Add a disassembly flag to omit the pc prefix and use it in the "record
instruction-history" command of record-btrace.

The pc prefix would appear multiple times in the branch trace disassembly,
which is more confusing than helpful.

gdb/
* record-btrace.c (btrace_insn_history): Omit the pc prefix in
the instruction history disassembly.
* disasm.c (dump_insns): Omit the pc prefix, if requested.
* disasm.h (DISASSEMBLY_OMIT_PC): New.

11 years agoAdd a target for branch trace recording.
Markus Metzger [Mon, 11 Mar 2013 08:51:58 +0000 (08:51 +0000)]
Add a target for branch trace recording.

The target implements the new record sub-commands
"record instruction-history" and
"record function-call-history".

The target does not support reverse execution or navigation in the
recorded execution log.

gdb/
* Makefile.in (SFILES): Add record-btrace.c
(COMMON_OBS): Add record-btrace.o
* record-btrace.c: New.
* objfiles.c: Include btrace.h.
(free_objfile): call btrace_free_objfile.

11 years agoAdd command to print the function names from recorded instructions.
Markus Metzger [Mon, 11 Mar 2013 08:50:05 +0000 (08:50 +0000)]
Add command to print the function names from recorded instructions.

This command provides a quick high-level overview over the recorded execution
log at function granularity without having to reverse-step.

gdb/
* target.c (target_call_history, target_call_history_from,
target_call_history_range): New.
* target.h (target_ops) <to_call_history, to_call_history_from,
to_call_history_range>: New fields.
(target_call_history, target_call_history_from,
target_call_history_range): New declaration.
* record.c (get_call_history_modifiers, cmd_record_call_history,
record_call_history_size): New.
(_initialize_record): Add the "record function-call-history" command.
Add "set/show record function-call-history-size" commands.
* record.h (record_print_flag): New.

11 years agoAdd a command to provide a disassembly of the execution trace log.
Markus Metzger [Mon, 11 Mar 2013 08:48:38 +0000 (08:48 +0000)]
Add a command to provide a disassembly of the execution trace log.

gdb/
* target.h (target_ops) <to_insn_history, to_insn_history_from,
to_insn_history_range>: New fields.
(target_insn_history): New.
(target_insn_history_from): New.
(target_insn_history_range): New.
* target.c (target_insn_history): New.
(target_insn_history_from): New.
(target_insn_history_range): New.
* record.c: Include cli/cli-utils.h, disasm.h, ctype.h.
(record_insn_history_size): New.
(get_insn_number): New.
(get_context_size): New.
(no_chunk): New.
(get_insn_history_modifiers): New.
(cmd_record_insn_history): New.
(_initialize_record): Add "set/show record instruction-history-size"
command. Add "record instruction-history" command.

11 years agoProvide default target methods for record targets that are likely to be shared
Markus Metzger [Mon, 11 Mar 2013 08:47:10 +0000 (08:47 +0000)]
Provide default target methods for record targets that are likely to be shared
between different record targets.

gdb/
* record.h (record_disconnect): New.
(record_detach): New.
(record_mourn_inferior): New.
(record_kill): New.
* record-full.c (record_disconnect, record_detach,
record_mourn_inferior, record_kill): Move to...
* record.c: ...here.
(DEBUG): New.
(record_stop): New.
(record_unpush): New.
(cmd_record_stop): Call record_stop. Replace unpush_target
call with record_unpush call.
(record_disconnect, record_detach): Assert that the target
is of record stratum. Call record_unpush, record_stop, and
DEBUG.
(record_mourn_inferior, record_kill): Assert that the target
is of record stratum. Call record_unpush and DEBUG.

11 years agoRename record_ prefixes in record-full.h into record_full_.
Markus Metzger [Mon, 11 Mar 2013 08:45:54 +0000 (08:45 +0000)]
Rename record_ prefixes in record-full.h into record_full_.

gdb/
* record-full.h, record-full.c (record_memory_query): Rename
to ...
(record_full_memory_query): ...this. Update all users.
(record_arch_list_add_reg): Rename to ...
(record_full_arch_list_add_reg): ...this. Update all users.
(record_arch_list_add_mem): Rename to ...
(record_full_arch_list_add_mem): ...this. Update all users.
(record_arch_list_add_end): Rename to ...
(record_full_arch_list_add_end): ...this. Update all users.
(record_gdb_operation_disable_set): Rename to ...
(record_full_gdb_operation_disable_set): ...this.
Update all users.

11 years agoRename record_ prefixes in record-full.c into record_full_.
Markus Metzger [Mon, 11 Mar 2013 08:44:14 +0000 (08:44 +0000)]
Rename record_ prefixes in record-full.c into record_full_.

gdb/
* record-full.c (DEFAULT_RECORD_INSN_MAX_NUM): Renamed to ...
(DEFAULT_RECORD_FULL_INSN_MAX_NUM): ... this. Updated all users.
(RECORD_IS_REPLAY): Renamed to ...
(RECORD_FULL_IS_REPLAY): ... this. Updated all users.
(RECORD_FILE_MAGIC): Renamed to ...
(RECORD_FULL_FILE_MAGIC): ... this. Updated all users.
(record_mem_entry): Renamed to ...
(record_full_mem_entry): ... this. Updated all users.
(record_reg_entry): Renamed to ...
(record_full_reg_entry): ... this. Updated all users.
(record_end_entry): Renamed to ...
(record_full_end_entry): ... this. Updated all users.
(record_type) <record_end, record_reg, record_mem>: Renamed
to ...
(record_full_type) <record_full_end, record_full_reg,
record_full_mem>: ... this. Updated all users.
(record_entry): Renamed to ...
(record_full_entry): ... this. Updated all users.
(record_core_buf_entry): Renamed to ...
(record_full_core_buf_entry): ... this. Updated all users.
(record_core_regbuf): Renamed to ...
(record_full_core_regbuf): ... this. Updated all users.
(record_core_start): Renamed to ...
(record_full_core_start): ... this. Updated all users.
(record_core_end): Renamed to ...
(record_full_core_end): ... this. Updated all users.
(record_core_buf_list): Renamed to ...
(record_full_core_buf_list): ... this. Updated all users.
(record_first): Renamed to ...
(record_full_first): ... this. Updated all users.
(record_list): Renamed to ...
(record_full_list): ... this. Updated all users.
(record_arch_list_head): Renamed to ...
(record_full_arch_list_head): ... this. Updated all users.
(record_arch_list_tail): Renamed to ...
(record_full_arch_list_tail): ... this. Updated all users.
(record_stop_at_limit): Renamed to ...
(record_full_stop_at_limit): ... this. Updated all users.
(record_insn_max_num): Renamed to ...
(record_full_insn_max_num): ... this. Updated all users.
(record_insn_num): Renamed to ...
(record_full_insn_num): ... this. Updated all users.
(record_insn_count): Renamed to ...
(record_full_insn_count): ... this. Updated all users.
(record_ops): Renamed to ...
(record_full_ops): ... this. Updated all users.
(record_core_ops): Renamed to ...
(record_full_core_ops): ... this. Updated all users.
(set_record_cmdlist): Renamed to ...
(set_record_full_cmdlist): ... this. Updated all users.
(show_record_cmdlist): Renamed to ...
(show_record_full_cmdlist): ... this. Updated all users.
(record_cmdlist): Renamed to ...
(record_full_cmdlist): ... this. Updated all users.
(record_beneath_to_resume_ops): Renamed to ...
(record_full_beneath_to_resume_ops): ... this. Updated all users.
(record_beneath_to_resume): Renamed to ...
(record_full_beneath_to_resume): ... this. Updated all users.
(record_beneath_to_wait_ops): Renamed to ...
(record_full_beneath_to_wait_ops): ... this. Updated all users.
(record_beneath_to_wait): Renamed to ...
(record_full_beneath_to_wait): ... this. Updated all users.
(record_beneath_to_store_registers_ops): Renamed to ...
(record_full_beneath_to_store_registers_ops): ... this.
Updated all users.
(record_beneath_to_store_registers): Renamed to ...
(record_full_beneath_to_store_registers): ... this.
Updated all users.
(record_beneath_to_xfer_partial_ops): Renamed to ...
(record_full_beneath_to_xfer_partial_ops): ... this.
Updated all users.
(record_beneath_to_xfer_partial): Renamed to ...
(record_full_beneath_to_xfer_partial): ... this.
Updated all users.
(record_beneath_to_insert_breakpoint): Renamed to ...
(record_full_beneath_to_insert_breakpoint): ... this.
Updated all users.
(record_beneath_to_stopped_by_watchpoint): Renamed to ...
(record_full_beneath_to_stopped_by_watchpoint): ... this.
Updated all users.
(record_beneath_to_stopped_data_address): Renamed to ...
(record_full_beneath_to_stopped_data_address): ... this.
Updated all users.
(record_beneath_to_async): Renamed to ...
(record_full_beneath_to_async): ... this. Updated all users.
(record_goto_insn): Renamed to ...
(record_full_goto_insn): ... this. Updated all users.
(record_save): Renamed to ...
(record_full_save): ... this. Updated all users.
(record_reg_alloc): Renamed to ...
(record_full_reg_alloc): ... this. Updated all users.
(record_reg_release): Renamed to ...
(record_full_reg_release): ... this. Updated all users.
(record_mem_alloc): Renamed to ...
(record_full_mem_alloc): ... this. Updated all users.
(record_mem_release): Renamed to ...
(record_full_mem_release): ... this. Updated all users.
(record_end_alloc): Renamed to ...
(record_full_end_alloc): ... this. Updated all users.
(record_end_release): Renamed to ...
(record_full_end_release): ... this. Updated all users.
(record_entry_release): Renamed to ...
(record_full_entry_release): ... this. Updated all users.
(record_list_release): Renamed to ...
(record_full_list_release): ... this. Updated all users.
(record_list_release_following): Renamed to ...
(record_full_list_release_following): ... this.
Updated all users.
(record_list_release_first): Renamed to ...
(record_full_list_release_first): ... this. Updated all users.
(record_arch_list_add): Renamed to ...
(record_full_arch_list_add): ... this. Updated all users.
(record_get_loc): Renamed to ...
(record_full_get_loc): ... this. Updated all users.
(record_check_insn_num): Renamed to ...
(record_full_check_insn_num): ... this. Updated all users.
(record_arch_list_cleanups): Renamed to ...
(record_full_arch_list_cleanups): ... this. Updated all users.
(record_message): Renamed to ...
(record_full_message): ... this. Updated all users.
(record_message_wrapper): Renamed to ...
(record_full_message_wrapper): ... this. Updated all users.
(record_message_wrapper_safe): Renamed to ...
(record_full_message_wrapper_safe): ... this. Updated all users.
(record_gdb_operation_disable): Renamed to ...
(record_full_gdb_operation_disable): ... this. Updated all users.
(record_hw_watchpoint): Renamed to ...
(record_full_hw_watchpoint): ... this. Updated all users.
(record_exec_insn): Renamed to ...
(record_full_exec_insn): ... this. Updated all users.
(record_restore): Renamed to ...
(record_full_restore): ... this. Updated all users.
(record_async_inferior_event_token): Renamed to ...
(record_full_async_inferior_event_token): ... this.
Updated all users.
(record_async_inferior_event_handler): Renamed to ...
(record_full_async_inferior_event_handler): ... this.
Updated all users.
(record_core_open_1): Renamed to ...
(record_full_core_open_1): ... this. Updated all users.
(record_open_1): Renamed to ...
(record_full_open_1): ... this. Updated all users.
(record_open): Renamed to ...
(record_full_open): ... this. Updated all users.
(record_close): Renamed to ...
(record_full_close): ... this. Updated all users.
(record_resume_step): Renamed to ...
(record_full_resume_step): ... this. Updated all users.
(record_resumed): Renamed to ...
(record_full_resumed): ... this. Updated all users.
(record_execution_dir): Renamed to ...
(record_full_execution_dir): ... this. Updated all users.
(record_resume): Renamed to ...
(record_full_resume): ... this. Updated all users.
(record_get_sig): Renamed to ...
(record_full_get_sig): ... this. Updated all users.
(record_sig_handler): Renamed to ...
(record_full_sig_handler): ... this. Updated all users.
(record_wait_cleanups): Renamed to ...
(record_full_wait_cleanups): ... this. Updated all users.
(record_wait_1): Renamed to ...
(record_full_wait_1): ... this. Updated all users.
(record_wait): Renamed to ...
(record_full_wait): ... this. Updated all users.
(record_stopped_by_watchpoint): Renamed to ...
(record_full_stopped_by_watchpoint): ... this. Updated all users.
(record_disconnect): Renamed to ...
(record_full_disconnect): ... this. Updated all users.
(record_detach): Renamed to ...
(record_full_detach): ... this. Updated all users.
(record_mourn_inferior): Renamed to ...
(record_full_mourn_inferior): ... this. Updated all users.
(record_kill): Renamed to ...
(record_full_kill): ... this. Updated all users.
(record_stopped_data_address): Renamed to ...
(record_full_stopped_data_address): ... this. Updated all users.
(record_registers_change): Renamed to ...
(record_full_registers_change): ... this. Updated all users.
(record_store_registers): Renamed to ...
(record_full_store_registers): ... this. Updated all users.
(record_xfer_partial): Renamed to ...
(record_full_xfer_partial): ... this. Updated all users.
(record_breakpoint): Renamed to ...
(record_full_breakpoint): ... this. Updated all users.
(record_breakpoint_p): Renamed to ...
(record_full_breakpoint_p): ... this. Updated all users.
(record_breakpoints): Renamed to ...
(record_full_breakpoints): ... this. Updated all users.
(record_sync_record_breakpoints): Renamed to ...
(record_full_sync_record_breakpoints): ... this.
Updated all users.
(record_init_record_breakpoints): Renamed to ...
(record_full_init_record_breakpoints): ... this.
Updated all users.
(record_insert_breakpoint): Renamed to ...
(record_full_insert_breakpoint): ... this. Updated all users.
(record_remove_breakpoint): Renamed to ...
(record_full_remove_breakpoint): ... this. Updated all users.
(record_can_execute_reverse): Renamed to ...
(record_full_can_execute_reverse): ... this. Updated all users.
(record_get_bookmark): Renamed to ...
(record_full_get_bookmark): ... this. Updated all users.
(record_goto_bookmark): Renamed to ...
(record_full_goto_bookmark): ... this. Updated all users.
(record_async): Renamed to ...
(record_full_async): ... this. Updated all users.
(record_can_async_p): Renamed to ...
(record_full_can_async_p): ... this. Updated all users.
(record_is_async_p): Renamed to ...
(record_full_is_async_p): ... this. Updated all users.
(record_execution_direction): Renamed to ...
(record_full_execution_direction): ... this. Updated all users.
(record_info): Renamed to ...
(record_full_info): ... this. Updated all users.
(record_delete): Renamed to ...
(record_full_delete): ... this. Updated all users.
(record_is_replaying): Renamed to ...
(record_full_is_replaying): ... this. Updated all users.
(record_goto_entry): Renamed to ...
(record_full_goto_entry): ... this. Updated all users.
(record_goto_begin): Renamed to ...
(record_full_goto_begin): ... this. Updated all users.
(record_goto_end): Renamed to ...
(record_full_goto_end): ... this. Updated all users.
(record_goto): Renamed to ...
(record_full_goto): ... this. Updated all users.
(init_record_ops): Renamed to ...
(init_record_full_ops): ... this. Updated all users.
(record_core_resume): Renamed to ...
(record_full_core_resume): ... this. Updated all users.
(record_core_kill): Renamed to ...
(record_full_core_kill): ... this. Updated all users.
(record_core_fetch_registers): Renamed to ...
(record_full_core_fetch_registers): ... this. Updated all users.
(record_core_prepare_to_store): Renamed to ...
(record_full_core_prepare_to_store): ... this. Updated all users.
(record_core_store_registers): Renamed to ...
(record_full_core_store_registers): ... this. Updated all users.
(record_core_xfer_partial): Renamed to ...
(record_full_core_xfer_partial): ... this. Updated all users.
(record_core_insert_breakpoint): Renamed to ...
(record_full_core_insert_breakpoint): ... this. Updated all users.
(record_core_remove_breakpoint): Renamed to ...
(record_full_core_remove_breakpoint): ... this. Updated all users.
(record_core_has_execution): Renamed to ...
(record_full_core_has_execution): ... this. Updated all users.
(init_record_core_ops): Renamed to ...
(init_record_full_core_ops): ... this. Updated all users.
(cmd_record_restore): Renamed to ...
(cmd_record_full_restore): ... this. Updated all users.
(record_save_cleanups): Renamed to ...
(record_full_save_cleanups): ... this. Updated all users.
(cmd_record_start): Renamed to ...
(cmd_record_full_start): ... this. Updated all users.
(set_record_insn_max_num): Renamed to ...
(set_record_full_insn_max_num): ... this. Updated all users.
(set_record_command): Renamed to ...
(set_record_full_command): ... this. Updated all users.
(show_record_command): Renamed to ...
(show_record_full_command): ... this. Updated all users.
(_initialize_record): Renamed to ...
(_initialize_record_full): ... this. Updated all users.

11 years agoSplit record.h into record.h and record-full.h.
Markus Metzger [Mon, 11 Mar 2013 08:42:55 +0000 (08:42 +0000)]
Split record.h into record.h and record-full.h.
Split record.c into record.c and record-full.c.

The split leaves the command part in record.c and moves the target part into
record-full.c.

gdb/
* record.h: Split into this and ...
* record-full.h: ... this.
* record.c: Split into this and ...
* record-full.c: ... this.
* target.h (target_ops): Add new fields to_info_record,
to_save_record, to_delete_record, to_record_is_replaying,
to_goto_record_begin, to_goto_record_end, to_goto_record.
(target_info_record): New.
(target_save_record): New.
(target_supports_delete_record): New.
(target_delete_record): New.
(target_record_is_replaying): New.
(target_goto_record_begin): New.
(target_goto_record_end): New.
(target_goto_record): New.
* target.c (target_info_record): New.
(target_save_record): New.
(target_supports_delete_record): New.
(target_delete_record): New.
(target_record_is_replaying): New.
(target_goto_record_begin): New.
(target_goto_record_end): New.
(target_goto_record): New.
* record.h: Declare struct cmd_list_element.
(record_cmdlist): New declaration.
(set_record_cmdlist): New declaration.
(show_record_cmdlist): New declaration.
(info_record_cmdlist): New declaration.
(cmd_record_goto): New declaration.
* record.c: Remove unnecessary includes.
Include inferior.h.
(cmd_record_goto): Remove declaration.
(record_cmdlist): Now extern. Initialize.
(set_record_cmdlist): Now extern. Initialize.
(show_record_cmdlist): Now extern. Initialize.
(info_record_cmdlist): Now extern. Initialize.
(find_record_target): New.
(require_record_target): New.
(cmd_record_start): Update.
(cmd_record_delete): Remove target-specific code.
Call target_delete_record.
(cmd_record_stop): Unpush any record target.
(set_record_insn_max_num): Move to record-full.c
(set_record_command): Add comment.
(show_record_command): Add comment.
(info_record_command): Update comment.
Remove target-specific code.
Call the record target's to_info_record.
(cmd_record_start): New.
(cmd_record_goto): Now extern.
Remove target-specific code.
Call target_goto_begin,  target_goto_end, or target_goto.
(_initialize_record): Move record target ops initialization to
record-full.c.
Change "record" command help text.
Move "record restore", "record set", and "record show" commands to
record-full.c.
* Makefile.in (SFILES): Add record-full.c.
(HFILES_NO_SRCDIR): Add record-full.h.
(COMMON_OBS): Add record-full.o.
* amd64-linux-tdep.c: Include record-full.h instead of record.h.
* arm-tdep.c: Include record-full.h.
* i386-linux-tdep.c: Include record-full.h instead of record.h.
* i386-tdep.c: Include record-full.h.
* infrun.c: Include record-full.h.
* linux-record.c: Include record-full.h.
* moxie-tdep.c: Include record-full.h.
* record-full.c: Include record-full.h.
Change module comment.
(set_record_full_cmdlist): New.
(show_record_full_cmdlist): New.
(record_full_cmdlist): New.
(record_goto_insn): New declaration.
(record_save): New declaration.
(record_check_insn_num): Change query string.
(record_info): New.
(record_delete): New.
(record_is_replaying): New.
(record_goto_entry): New.
(record_goto_begin): New.
(record_goto_end): New.
(record_goto): New.
(init_record_ops): Update.
(init_record_core_ops): Update.
(cmd_record_save): Rename to record_save. Remove target and arg checks.
(cmd_record_start): New.
(set_record_insn_max_num): Moved from record.c
(set_record_full_command): New.
(show_record_full_command): New.
(_initialize_record_full): New.

11 years agoAdd a new function to target.h to add an alias command for a target and mark it
Markus Metzger [Mon, 11 Mar 2013 08:39:38 +0000 (08:39 +0000)]
Add a new function to target.h to add an alias command for a target and mark it
deprecated.  This is useful when renaming targets.

gdb/
* target.h (add_deprecated_target_alias): New.
* target.c (add_deprecated_target_alias): New.

11 years agoLBR, BTM, or BTS records may have incorrect branch "from" information afer an
Markus Metzger [Mon, 11 Mar 2013 08:38:27 +0000 (08:38 +0000)]
LBR, BTM, or BTS records may have incorrect branch "from" information afer an
EIST transition, T-states, C1E, or Adaptive Thermal Throttling (AAJ122).

This results in sporadic test fails. Disable btrace on those processors.

gdb/
* common/linux-btrace.c: Include sys/ptrace, sys/types, sys/wait.h,
and signal.h.
(linux_supports_btrace): Add kernel and
cpuid check.
(kernel_supports_btrace): New function.
(cpu_supports_btrace): New function.
(intel_supports_btrace): New function.

11 years agoDocument the branch tracing extensions to the remote serial protocol.
Markus Metzger [Mon, 11 Mar 2013 08:36:57 +0000 (08:36 +0000)]
Document the branch tracing extensions to the remote serial protocol.

doc/
* gdb.texinfo (Requirements): List qXfer:btrace:read requiring expat.
(General Query Packets): Describe Qbtrace:bts, Qbtrace:off, and
qXfer:btrace:read.

11 years agoAdd the gdb remote target operations for branch tracing.
Markus Metzger [Mon, 11 Mar 2013 08:35:11 +0000 (08:35 +0000)]
Add the gdb remote target operations for branch tracing.
We define the following packets:

  Qbtrace:bts         enable branch tracing for the current thread
                      returns "OK" or "Enn"

  Qbtrace:off         disable branch tracing for the current thread
                      returns "OK" or "Enn"

  qXfer:btrace:read   read the full branch trace data for the current thread

gdb/
* target.h (enum target_object): Add TARGET_OBJECT_BTRACE.
* remote.c: Include btrace.h.
(struct btrace_target_info): New struct.
(remote_supports_btrace): New function.
(send_Qbtrace): New function.
(remote_enable_btrace): New function.
(remote_disable_btrace): New function.
(remote_teardown_btrace): New function.
(remote_read_btrace): New function.
(init_remote_ops): Add btrace ops.
(enum <unnamed>): Add btrace packets.
(struct protocol_feature remote_protocol_features[]): Add btrace packets.
(_initialize_remote): Add packet configuration for branch tracing.

gdbserver/
* target.h (struct target_ops): Add btrace ops.
(target_supports_btrace): New macro.
(target_enable_btrace): New macro.
(target_disable_btrace): New macro.
(target_read_btrace): New macro.
* gdbthread.h (struct thread_info): Add btrace field.
* server.c: Include btrace-common.h.
(handle_btrace_general_set): New function.
(handle_btrace_enable): New function.
(handle_btrace_disable): New function.
(handle_general_set): Call handle_btrace_general_set.
(handle_qxfer_btrace): New function.
(struct qxfer qxfer_packets[]): Add btrace entry.
* inferiors.c (remove_thread): Disable btrace.
* linux-low: Include linux-btrace.h.
(linux_low_enable_btrace): New function.
(linux_low_read_btrace): New function.
(linux_target_ops): Add btrace ops.
* configure.srv (i[34567]86-*-linux*): Add linux-btrace.o.
Add srv_linux_btrace=yes.
(x86_64-*-linux*): Add linux-btrace.o.
Add srv_linux_btrace=yes.
* configure.ac: Define HAVE_LINUX_BTRACE.
* config.in: Regenerated.
* configure: Regenerated.

11 years agoPreserve a verbose error message of xfer functions if they return -3.
Markus Metzger [Mon, 11 Mar 2013 08:31:48 +0000 (08:31 +0000)]
Preserve a verbose error message of xfer functions if they return -3.

gdbserver/
* server.c (handle_qxfer): Preserve error message if -3 is
returned.
(qxfer): Document the -3 return value.

11 years agoDefine the xml document style for transferring branch trace data.
Markus Metzger [Mon, 11 Mar 2013 08:28:58 +0000 (08:28 +0000)]
Define the xml document style for transferring branch trace data.

Add a function to parse a btrace xml document into a vector of branch trace
blocks.

gdb/
* features/btrace.dtd: New file.
* Makefile.in (XMLFILES): Add btrace.dtd.
* btrace.h (parse_xml_btrace): New declaration.
* btrace.c: Include xml-support.h.
(parse_xml_btrace): New function.
(parse_xml_btrace_block): New function.
(block_attributes): New struct.
(btrace_attributes): New struct.
(btrace_children): New struct.
(btrace_elements): New struct.

11 years agoInstall the btrace target ops for i386-linux-nat and amd64-linux-nat.
Markus Metzger [Mon, 11 Mar 2013 08:25:58 +0000 (08:25 +0000)]
Install the btrace target ops for i386-linux-nat and amd64-linux-nat.

gdb/
* amd64-linux-nat.c: Include btrace.h and linux-btrace.h.
(amd64_linux_enable_btrace): New.
(amd64_linux_disable_btrace): New.
(amd64_linux_teardown_btrace): New.
(_initialize_amd64_linux_nat): Initialize btrace ops.
* i386-linux.nat.c: Include btrace.h and linux-btrace.h.
(i386_linux_enable_btrace): New.
(i386_linux_disable_btrace): New.
(i386_linux_teardown_btrace): New.
(_initialize_i386_linux_nat): Initialize btrace ops.
* config/i386/linux.mh: Add linux-btrace.o.
* config/i386/linux64.mh: Add linux-btrace.o.

11 years agoImplement branch tracing on Linux based on perf_event such that it can be shared
Markus Metzger [Mon, 11 Mar 2013 08:24:07 +0000 (08:24 +0000)]
Implement branch tracing on Linux based on perf_event such that it can be shared
between gdb and gdbserver.

gdb/
* common/linux_btrace.h: New file.
* common/linux_btrace.c: New file.
* Makefile.in (SFILES): Add btrace.c.
(HFILES_NO_SRCDIR): Add common/linux-btrace.h.
(COMMON_OBS): Add btrace.o.
(linux-btrace.o): New rule.

gdbserver/
* Makefile.in (SFILES): Add $(srcdir)/common/linux-btrace.c.
(linux_btrace_h): New variable.
(linux-btrace.o): New rule.

11 years agoFix ChangeLog date.
Markus Metzger [Mon, 11 Mar 2013 08:19:33 +0000 (08:19 +0000)]
Fix ChangeLog date.

11 years agoAdd branch trace information to struct thread_info.
Markus Metzger [Mon, 11 Mar 2013 08:17:08 +0000 (08:17 +0000)]
Add branch trace information to struct thread_info.

Add functions to enable, disable, clear, and fetch a thread's branch trace.

gdb/
* target.h: Include btrace.h.
(struct target_ops) <to_supports_btrace, to_enable_btrace,
to_disable_btrace, to_teardown_btrace, to_read_btrace>: New.
* target.c (target_supports_btrace): New function.
(target_enable_btrace): New function.
(target_disable_btrace): New function.
(target_teardown_btrace): New function.
(target_read_btrace): New function.
* btrace.h: New file.
* btrace.c: New file.
* Makefile.in: Add btrace.c.
* gdbthread.h: Include btrace.h.
(struct thread_info): Add btrace field.
* thread.c: Include btrace.h.
(clear_thread_inferior_resources): Call target_teardown_btrace.
* common/btrace-common.h: New file.

11 years ago*** empty log message ***
gdbadmin [Mon, 11 Mar 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***

11 years ago * gold.cc (queue_middle_tasks): Move detect_odr_violations..
Alan Modra [Sun, 10 Mar 2013 23:08:18 +0000 (23:08 +0000)]
* gold.cc (queue_middle_tasks): Move detect_odr_violations..
* layout.cc (Layout_task_runner::run): ..to here.
* symtab.h (struct Symbol_location): Extract from..
(class Symbol_table): ..here.
* symtab.cc (Symbol_table::linenos_from_loc): Invoke function_location.
* target.h (class Target): Add function_location and
do_function_location functions.
(class Sized_target): Add do_function_location.
* object.h (class Sized_relobj_file): Move find_shdr..
(class Object): ..to here.
* object.cc: Likewise.  Update to suit.  Instantiate.
(Sized_relobj_file::find_eh_frame): Update find_shdr call.
* powerpc.cc (class Powerpc_dynobj): New.
(Target_powerpc::do_function_location): New function.
(Powerpc_relobj::do_find_special_sections): Update find_shdr call.
(Powerpc_dynobj::do_read_symbols): New function.
(Target_powerpc::do_make_elf_object): Make a Powerpc_dynobj.

11 years agodaily update
Alan Modra [Sun, 10 Mar 2013 23:00:05 +0000 (23:00 +0000)]
daily update

11 years agogdb/
Jan Kratochvil [Sun, 10 Mar 2013 18:07:57 +0000 (18:07 +0000)]
gdb/
* common/linux-ptrace.c (linux_ptrace_test_ret_to_nx): Call also kill
for CHILD, ignore PTRACE_KILL errors, move the inner block variable
kill_status to outer block.

11 years agogdb/
Jan Kratochvil [Sun, 10 Mar 2013 18:06:26 +0000 (18:06 +0000)]
gdb/
Fix entry-values if the callee called a noreturn function.
* dwarf2-frame-tailcall.c (dwarf2_tailcall_sniffer_first): Use
get_frame_address_in_block.  Add new comment.

gdb/testsuite/
Fix entry-values if the callee called a noreturn function.
* gdb.arch/amd64-tailcall-noret.S: New file.
* gdb.arch/amd64-tailcall-noret.c: New file.
* gdb.arch/amd64-tailcall-noret.exp: New file.

11 years agogdb/
Jan Kratochvil [Sun, 10 Mar 2013 18:04:00 +0000 (18:04 +0000)]
gdb/
Fix entry-values in C++ across CUs.
* dwarf2loc.c (call_site_to_target_addr) <FIELD_LOC_KIND_PHYSNAME>: Use
lookup_minimal_symbol.  Add a comment.
* dwarf2read.c
(read_call_site_scope) <is_ref_attr> <die_is_declaration>: Prefer
DW_AT_linkage_name.

gdb/testsuite/
Fix entry-values in C++ across CUs.
* gdb.arch/amd64-tailcall-cxx.exp: New file.
* gdb.arch/amd64-tailcall-cxx1.S: New file.
* gdb.arch/amd64-tailcall-cxx1.cc: New file.
* gdb.arch/amd64-tailcall-cxx2.S: New file.
* gdb.arch/amd64-tailcall-cxx2.cc: New file.

11 years ago*** empty log message ***
gdbadmin [Sun, 10 Mar 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Sat, 9 Mar 2013 23:00:05 +0000 (23:00 +0000)]
daily update

11 years ago2013-03-09 Hafiz Abid Qadeer <abidh@codesourcery.com>
Hafiz Abid Qadeer [Sat, 9 Mar 2013 12:05:20 +0000 (12:05 +0000)]
2013-03-09 Hafiz Abid Qadeer  <abidh@codesourcery.com>

Fixed year number in Changelog files.

11 years agoFix last commit.
Eli Zaretskii [Sat, 9 Mar 2013 11:01:01 +0000 (11:01 +0000)]
Fix last commit.

 doc/gdb.texinfo (General Query Packets, Tracepoint Packets): Don't
 use colons in @anchor and @cindex entries.

11 years ago2012-03-09 Hafiz Abid Qadeer <abidh@codesourcery.com>
Hafiz Abid Qadeer [Sat, 9 Mar 2013 10:21:42 +0000 (10:21 +0000)]
2012-03-09  Hafiz Abid Qadeer  <abidh@codesourcery.com>

* gdb.texinfo (QTBuffer:size): Add cindex and anchor.

11 years ago*** empty log message ***
gdbadmin [Sat, 9 Mar 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Fri, 8 Mar 2013 23:00:06 +0000 (23:00 +0000)]
daily update

11 years ago * options.cc (General_options::string_to_object_format): Accept
Ian Lance Taylor [Fri, 8 Mar 2013 22:34:46 +0000 (22:34 +0000)]
* options.cc (General_options::string_to_object_format): Accept
"default".

11 years ago * elf64-aarch64.c (elf_backend_can_gc_sections): Enable
Nick Clifton [Fri, 8 Mar 2013 17:37:30 +0000 (17:37 +0000)]
    * elf64-aarch64.c (elf_backend_can_gc_sections): Enable
gc-section support.
        (elf64_aarch64_gc_sweep_hook): Handle GOT, TLS and PLT related relocs.

        * lib/ld-lib.exp (check_gc_sections_available): Remove aarch64
from list of
        targets that don't support gc-section.

11 years ago PR binutils/15241
Nick Clifton [Fri, 8 Mar 2013 17:25:12 +0000 (17:25 +0000)]
PR binutils/15241
* lm32.cpu (Control and status registers): Add CFG2, PSW,
TLBVADDR, TLBPADDR and TLBBADVADDR.

* lm32-desc.c: Regenerate.

11 years ago * elf-bfd.h (elfcore_write_s390_tdb): Add prototype.
Nick Clifton [Fri, 8 Mar 2013 17:13:31 +0000 (17:13 +0000)]
* elf-bfd.h (elfcore_write_s390_tdb): Add prototype.
* elf.c (elfcore_write_s390_tdb): New function.
(elfcore_write_register_note): Call it.
(elfcore_grok_s390_tdb): New function.
(elfcore_grok_note): Call it.

* readelf.c (get_note_type): Add NT_S390_TDB.

11 years agogdb/
Yao Qi [Fri, 8 Mar 2013 15:35:06 +0000 (15:35 +0000)]
gdb/

* tracepoint.c (_initialize_tracepoint): Indent the code.

11 years agofind command, fix -Wpoint-sign
Pedro Alves [Fri, 8 Mar 2013 15:22:44 +0000 (15:22 +0000)]
find command, fix -Wpoint-sign

From: Pedro Alves <palves@redhat.com>

The find command's patter/buffer that is passed to the target is a
binary blob, not a string.

$ make WERROR_CFLAGS="-Wpointer-sign -Werror" findcmd.o -k 2>&1 1>/dev/null
../../src/gdb/findcmd.c: In function ‘find_command’:
../../src/gdb/findcmd.c:278:6: error: pointer targets in passing argument 3 of ‘target_search_memory’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/findcmd.c:26:0:
../../src/gdb/target.h:1582:12: note: expected ‘const gdb_byte *’ but argument is of type ‘char *’

gdb/
2013-03-08  Pedro Alves  <palves@redhat.com>

* findcmd.c (put_bits): Change type of parameter to 'gdb_byte *'.
(parse_find_args, find_command): Change type of pattern buffer
locals to 'gdb_byte *'.

11 years ago2012-03-08 Stan Shebs <stan@codesourcery.com>
Hafiz Abid Qadeer [Fri, 8 Mar 2013 15:06:39 +0000 (15:06 +0000)]
2012-03-08  Stan Shebs  <stan@codesourcery.com>
    Hafiz Abid Qadeer  <abidh@codesourcery.com>

gdb/
* NEWS: Mention set and show trace-buffer-size commands.
Mention new packet.
* target.h (struct target_ops): New method
to_set_trace_buffer_size.
(target_set_trace_buffer_size): New macro.
* target.c (update_current_target): Set up new method.
* tracepoint.c (trace_buffer_size): New global.
(start_tracing): Send it to the target.
(set_trace_buffer_size): New function.
(_initialize_tracepoint): Add new setshow for trace-buffer-size.
* remote.c (remote_set_trace_buffer_size): New function.
(_initialize_remote): Use it.
(QTBuffer:size) New remote command.
(PACKET_QTBuffer_size): New enum.
(remote_protocol_features): Add an entry for
PACKET_QTBuffer_size.

gdb/gdbserver/
* tracepoint.c (trace_buffer_size): New global.
(DEFAULT_TRACE_BUFFER_SIZE): New define.
(init_trace_buffer): Change to one-argument function. Allocate
trace buffer memory.
(handle_tracepoint_general_set): Call cmd_bigqtbuffer_size to
handle QTBuffer:size packet.
(cmd_bigqtbuffer_size): New function.
(initialize_tracepoint): Call init_trace_buffer with
DEFAULT_TRACE_BUFFER_SIZE.
* server.c (handle_query): Add QTBuffer:size in the
supported packets.

gdb/doc/
* gdb.texinfo (Starting and Stopping Trace Experiments): Document
trace-buffer-size set and show commands.
(Tracepoint Packets): Document QTBuffer:size.
(General Query Packets): Document QTBuffer:size.

gdb/testsuite/
* gdb.trace/trace-buffer-size.exp: New file.
* gdb.trace/trace-buffer-size.c: New file.

11 years ago * remote-m32r-sdi.c (m32r_load): Call skip_spaces on correct
Tom Tromey [Fri, 8 Mar 2013 14:42:23 +0000 (14:42 +0000)]
* remote-m32r-sdi.c (m32r_load): Call skip_spaces on correct
variable.

11 years ago * elfxx-mips.c (mips_elf_allocate_lazy_stub): Correct data type.
Maciej W. Rozycki [Fri, 8 Mar 2013 11:50:27 +0000 (11:50 +0000)]
* elfxx-mips.c (mips_elf_allocate_lazy_stub): Correct data type.

11 years ago2013-03-08 Chung-Lin Tang <cltang@codesourcery.com>
Chung-Lin Tang [Fri, 8 Mar 2013 10:17:00 +0000 (10:17 +0000)]
2013-03-08  Chung-Lin Tang  <cltang@codesourcery.com>

* write.h (struct fix): Add fx_dot_frag field.
(dot_frag): Declare.
* write.c (dot_frag): New variable.
(fix_new_internal): Set fx_dot_frag field with dot_frag.
(fixup_segment): Base calculation of fx_offset with fx_dot_frag.
* expr.c (expr): Save value of frag_now in dot_frag when setting
dot_value.
* read.c (emit_expr): Likewise. Delete comments.

11 years ago*** empty log message ***
gdbadmin [Fri, 8 Mar 2013 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***

11 years agotarget.c: fix -Wpointer-sign
Pedro Alves [Thu, 7 Mar 2013 23:53:12 +0000 (23:53 +0000)]
target.c: fix -Wpointer-sign

$ make WERROR_CFLAGS="-Wpointer-sign -Werror" target.o -k 2>&1 1>/dev/null
../../src/gdb/target.c: In function ‘target_read_stralloc’:
../../src/gdb/target.c:2376:3: error: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Werror=pointer-sign]
In file included from build-gnulib/import/string.h:27:0,
                 from ../../src/gdb/common/gdb_string.h:24,
                 from ../../src/gdb/target.c:24:
/usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘gdb_byte *’
...

This is about the same as the previous patch.

Functions that take or return ascii-ish string arguments usually use
char* for parameters/return.  That means that at points we call into
target methods that work with binary blobs, we need casts to/from
gdb_byte*/char*.  To choose which type for the variables, I usually go
based on which requires the fewer casts, and what the contents of the
variable are supposed to hold, which often gives the same answer.

gdb/
2013-03-07  Pedro Alves  <palves@redhat.com>

* target.c (target_read_stralloc, target_fileio_read_alloc):
*Cast pointer to 'gdb_byte *' in target call.

11 years agocorefile.c: fix -Wpointer-sign
Pedro Alves [Thu, 7 Mar 2013 23:36:01 +0000 (23:36 +0000)]
corefile.c: fix -Wpointer-sign

$ make WERROR_CFLAGS="-Wpointer-sign -Werror" corefile.o -k 2>&1 1>/dev/null
../../src/gdb/corefile.c: In function ‘read_memory_string’:
../../src/gdb/corefile.c:334:7: error: pointer targets in passing argument 2 of ‘read_memory’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/corefile.c:217:1: note: expected ‘gdb_byte *’ but argument is of type ‘char *’

Functions that take or return ascii-ish string arguments usually use
char* for parameters/return.  That means that at points we call into
target methods that work with binary blobs, we need casts to
gdb_byte*.

gdb/
2013-03-07  Pedro Alves  <palves@redhat.com>

* corefile.c (read_memory_string): Cast pointer to gdb_byte* in
call.

11 years ago * ehframe.h (Post_fdes) Make it a vector of Post_fde rather than
Alan Modra [Thu, 7 Mar 2013 23:27:53 +0000 (23:27 +0000)]
* ehframe.h (Post_fdes) Make it a vector of Post_fde rather than
pointer to Post_fde.
(struct Post_fde): Move definition to here..
* ehframe.cc (struct Post_fde): ..from here.
(Cie::write): Don't alloc Post_fde.
(Eh_frame::do_sized_write): Update.  Don't free Post_fde.

11 years agodaily update
Alan Modra [Thu, 7 Mar 2013 23:00:05 +0000 (23:00 +0000)]
daily update

11 years ago * breakpoint.c (catch_syscall_split_args): Use skip_spaces.
Keith Seitz [Thu, 7 Mar 2013 21:57:30 +0000 (21:57 +0000)]
* breakpoint.c (catch_syscall_split_args): Use skip_spaces.
(trace_pass_command): Likewise.
* cli/cli-cmds.c: Include cli/cli-utils.h.
(source_command): Use skip-spaces.
(disassemble_command): Likewise.
* findcmd.c: Include cli/cli-utils.h.
(parse_find_args): Use skip_spaces.
* go32-nat.c: Include cli/cli-utils.h.
(go32_sldt): Use skip_spaces.
(go32_sgdt): Likewise.
(go32_sidt): Likewise.
(go32_pde): Likewise.
(go32_pte): Likewise.
(go32_pte_for_address): Likewise.
* infcmd.c: Include cli/cli-utils.h.
(registers_info): Use skip_spaces.
* linux-tdep.c (read_mapping): Use skip_spaces_const.
(linux_info_proc): Likewise.
* linux-thread-db.c: Include cli/cli-utils.h.
(info_auto_load_libthread_db): Use skip_spaces_const.
* m32r-rom.c: Include cli/cli-utils.h.
(m32r_upload_command): Use skip_spaces.
* maint.c: Include cli/cli-utils.h.
(maintenance_translate_address): Use skip_spaces.
* mi/mi-parse.c: Include cli/cli-utils.h.
(mi_parse_argv): Use skip_spaces.
(mi_parse): Likewise.
* minsyms.c: Include cli/cli-utils.h.
(msymbol_hash_iw): Use skip_spaces_const.
* objc-lang.c: Include cli/cli-utils.h.
(parse_selector): Use skip_spaces.
(parse_method): Likewise.
* python/python.c: Include cli/cli-utils.h.
(python_interactive_command)[HAVE_PYTHON]: Use skip_spaces.
(python_command)[HAVE_PYTHON]: Likewise.
(python_interactive_command)[!HAVE_PYTHON]: Likewise.
* remote-m32r-sdi.c: Include cli/cli-utils.h.
(m32r_load): Use skip_spaces.
* serial.c: Include cli/cli-utils.h.
(serial_open): Use skip_spaces_const.
* stack.c: Include cli/cli-utils.h.
(parse_frame_specification_1): Use skip_spaces_const.
* symfile.c: Include cli/cli-utils.h.
(set_ext_lang_command): Use skip_spaces.
* symtab.c: Include cli/cli-utils.h.
(rbreak_command): Use skip_spaces.
* thread.c (thread_name_command): Use skip_spaces.
* tracepoint.c (validate_actionline): Use skip_spaces.
(encode_actions_1): Likewise.
(trace_find_range_command): Likewise.
(trace_find_outside_command): Likewise.
(trace_dump_actions): Likewise.

11 years agoRewrote i386_index_check
H.J. Lu [Thu, 7 Mar 2013 21:40:06 +0000 (21:40 +0000)]
Rewrote i386_index_check

* config/tc-i386.c (flag_code_names): Removed.
(i386_index_check): Rewrote.