Commit Graph

44 Commits

Author SHA1 Message Date
Keith Seitz ddfe970e6b Don't elide all inlined frames
This patch essentially causes GDB to treat inlined frames like "normal"
frames from the user's perspective.  This means, for example, that when a
user sets a breakpoint in an inlined function, GDB will now actually stop
"in" that function.

Using the test case from breakpoints/17534,

3	static inline void NVIC_EnableIRQ(int IRQn)
4	{
5	  volatile int y;
6	  y = IRQn;
7	}
8
9	__attribute__( ( always_inline ) ) static inline void __WFI(void)
10	{
11	    __asm volatile ("nop");
12	}
13
14	int main(void) {
15
16	    x= 42;
17
18	    if (x)
19	      NVIC_EnableIRQ(16);
20	    else
21	      NVIC_EnableIRQ(18);
(gdb) b NVIC_EnableIRQ
Breakpoint 1 at 0x4003e4: NVIC_EnableIRQ. (2 locations)
(gdb) r
Starting program: 17534

Breakpoint 1, main () at 17534.c:19
19	      NVIC_EnableIRQ(16);

Because skip_inline_frames currently skips every inlined frame, GDB "stops"
in the caller.  This patch adds a new parameter to skip_inline_frames
that allows us to pass in a bpstat stop chain.  The breakpoint locations
on the stop chain can be used to determine if we've stopped inside an inline
function (due to a user breakpoint).  If we have, we do not elide the frame.

With this patch, GDB now reports that the inferior has stopped inside the
inlined function:

(gdb) r
Starting program: 17534

Breakpoint 1, NVIC_EnableIRQ (IRQn=16) at 17534.c:6
6	  y = IRQn;

Many thanks to Jan and Pedro for guidance on this.

gdb/ChangeLog:

	* breakpoint.c (build_bpstat_chain): New function, moved from
	bpstat_stop_status.
	(bpstat_stop_status): Add optional parameter, `stop_chain'.
	If no stop chain is passed, call build_bpstat_chain to build it.
	* breakpoint.h (build_bpstat_chain): Declare.
	(bpstat_stop_status): Move documentation here from breakpoint.c.
	* infrun.c (handle_signal_stop): Before eliding inlined frames,
	build the stop chain and pass it to skip_inline_frames.
	Pass this stop chain to bpstat_stop_status.
	* inline-frame.c: Include breakpoint.h.
	(stopped_by_user_bp_inline_frame): New function.
	(skip_inline_frames): Add parameter `stop_chain'.
	Move documention to inline-frame.h.
	If non-NULL, use stopped_by_user_bp_inline_frame to determine
	whether the frame should be elided.
	* inline-frame.h (skip_inline_frames): Add parameter `stop_chain'.
	Add moved documentation and update for new parameter.

gdb/testsuite/ChangeLog:

	* gdb.ada/bp_inlined_func.exp: Update inlined frame locations
	in expected breakpoint stop locations.
	* gdb.dwarf2/implptr.exp (implptr_test_baz): Use up/down to
	move to proper scope to test variable values.
	* gdb.opt/inline-break.c (inline_func1, not_inline_func1)
	(inline_func2, not_inline_func2, inline_func3, not_inline_func3):
	New functions.
	(main): Call not_inline_func3.
	* gdb.opt/inline-break.exp: Start inferior and set breakpoints at
	inline_func1, inline_func2, and inline_func3.  Test that when each
	breakpoint is hit, GDB properly reports both the stop location
	and the backtrace. Repeat tests for temporary breakpoints.
2018-05-17 12:15:11 -07:00
Joel Brobecker e2882c8578 Update copyright year range in all GDB files
gdb/ChangeLog:

        Update copyright year range in all GDB files
2018-01-02 07:38:06 +04:00
Simon Marchi 41bd68f52c Show optimized out local variables in "info locals"
Currently, optimized out variables are not shown when doing "info
locals".  Some users found that confusing, thinking GDB forgot to print
their variable.  This patch adds them to the "info locals" output.  I
added a test in gdb.dwarf2 to test for that behavior.  I think doing a
synthetic DWARF test is the easiest way to have an optimized out local
variable for sure.

However, this change reveals what I think is a bug in GDB, see:

http://lists.dwarfstd.org/pipermail/dwarf-discuss-dwarfstd.org/2017-September/004394.html

This patch marks the tests in inline-locals.exp that start failing as
KFAIL.  I'd like to tackle this bug eventually, but I don't have the
time right now.  I think it's still better to show an extra erroneous
entry than to not show the optimized out variables at all.  I haven't
created a bug in bugzilla yet, but if we agree it's indeed a bug,  I'll
create one and update the setup_kfail lines with the actual bug number
before pushing.

gdb/ChangeLog:

	* stack.c (iterate_over_block_locals): Add LOC_OPTIMIZED_OUT
	case in switch.

gdb/testsuite/ChangeLog:

	* gdb.opt/inline-locals.exp: Mark tests as KFAIL.
	* gdb.dwarf2/info-locals-optimized-out.exp: New file.
	* gdb.dwarf2/info-locals-optimized-out.c: New file.
2017-11-22 15:51:44 -05:00
Simon Marchi ddbb44cf36 gdb.opt/inline-locals.exp: Remove trailing parentheses in test names
Test names should not end with parentheses, since the buildbot strips
those.

gdb/testsuite/ChangeLog:

	* gdb.opt/inline-locals.exp: Remove trailing parentheses from
	test names.
2017-11-13 22:06:02 -05:00
Keith Seitz 4a27f119f5 Use SaL symbol name when reporting breakpoint locations
Currently, "info break" can show some (perhaps) unexpected results when
setting a breakpoint on an inlined function:

(gdb) list
1	#include <stdio.h>
2
3	static inline void foo()
4	{
5	        printf("Hello world\n");
6	}
7
8	int main()
9	{
10	        foo();
11	        return 0;
12	}
13
(gdb) b foo
Breakpoint 1 at 0x400434: file foo.c, line 5.
(gdb) i b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000400434 in main at foo.c:5

GDB reported that we understood what "foo" was, but we then report that the
breakpoint is actually set in main. While that is literally true, we can
do a little better.

This is accomplished by copying the symbol for which the breakpoint was set
into the bp_location.  From there, print_breakpoint_location can use this
information to print out symbol information (if available) instead of calling
find_pc_sect_function.

With the patch installed,

(gdb) i b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000400434 in foo at foo.c:5

gdb/ChangeLog:

	* breakpoint.c (print_breakpoint_location): Use the symbol saved
	in the bp_location, falling back to find_pc_sect_function when
	needed.
	(add_location_to_breakpoint): Save sal->symbol.
	* breakpoint.h (struct bp_location) <symbol>: New field.
	* symtab.c (find_function_start_sal): Save the symbol into the SaL.
	* symtab.h (struct symtab_and_line) <symbol>: New field.

gdb/testsuite/ChangeLog:

	* gdb.opt/inline-break.exp (break_info_1): New procedure.
	Test "info break" for every inlined function breakpoint.
2017-10-27 10:57:23 -07:00
Joel Brobecker 61baf725ec update copyright year range in GDB files
This applies the second part of GDB's End of Year Procedure, which
updates the copyright year range in all of GDB's files.

gdb/ChangeLog:

        Update copyright year range in all GDB files.
2017-01-01 10:52:34 +04:00
Luis Machado 5b362f04b2 Fix more cases of improper test names
I noticed more occurrences of improper test names. The rather mechanical,
tedious and large patch below addresses, hopefully, most of the leftover cases.

As usual, another pair of eyes is welcome to check if missed something or did
an invalid substitution.

This patch also fixes the prepare_for_testing calls to pass proper test names.

gdb/testsuite/ChangeLog:

2016-12-23  Luis Machado  <lgustavo@codesourcery.com>

	Fix test names for the following files:

	* gdb.ada/exec_changed.exp
	* gdb.ada/info_types.exp
	* gdb.arch/aarch64-atomic-inst.exp
	* gdb.arch/aarch64-fp.exp
	* gdb.arch/altivec-abi.exp
	* gdb.arch/altivec-regs.exp
	* gdb.arch/amd64-byte.exp
	* gdb.arch/amd64-disp-step.exp
	* gdb.arch/amd64-dword.exp
	* gdb.arch/amd64-entry-value-inline.exp
	* gdb.arch/amd64-entry-value-param.exp
	* gdb.arch/amd64-entry-value-paramref.exp
	* gdb.arch/amd64-entry-value.exp
	* gdb.arch/amd64-i386-address.exp
	* gdb.arch/amd64-invalid-stack-middle.exp
	* gdb.arch/amd64-invalid-stack-top.exp
	* gdb.arch/amd64-optimout-repeat.exp
	* gdb.arch/amd64-prologue-skip.exp
	* gdb.arch/amd64-prologue-xmm.exp
	* gdb.arch/amd64-stap-special-operands.exp
	* gdb.arch/amd64-stap-wrong-subexp.exp
	* gdb.arch/amd64-tailcall-cxx.exp
	* gdb.arch/amd64-tailcall-noret.exp
	* gdb.arch/amd64-tailcall-ret.exp
	* gdb.arch/amd64-tailcall-self.exp
	* gdb.arch/amd64-word.exp
	* gdb.arch/arm-bl-branch-dest.exp
	* gdb.arch/arm-disp-step.exp
	* gdb.arch/arm-neon.exp
	* gdb.arch/arm-single-step-kernel-helper.exp
	* gdb.arch/avr-flash-qualifier.exp
	* gdb.arch/disp-step-insn-reloc.exp
	* gdb.arch/e500-abi.exp
	* gdb.arch/e500-regs.exp
	* gdb.arch/ftrace-insn-reloc.exp
	* gdb.arch/i386-avx512.exp
	* gdb.arch/i386-bp_permanent.exp
	* gdb.arch/i386-byte.exp
	* gdb.arch/i386-cfi-notcurrent.exp
	* gdb.arch/i386-disp-step.exp
	* gdb.arch/i386-dr3-watch.exp
	* gdb.arch/i386-float.exp
	* gdb.arch/i386-gnu-cfi.exp
	* gdb.arch/i386-mpx-map.exp
	* gdb.arch/i386-mpx-sigsegv.exp
	* gdb.arch/i386-mpx-simple_segv.exp
	* gdb.arch/i386-mpx.exp
	* gdb.arch/i386-permbkpt.exp
	* gdb.arch/i386-prologue.exp
	* gdb.arch/i386-signal.exp
	* gdb.arch/i386-size-overlap.exp
	* gdb.arch/i386-unwind.exp
	* gdb.arch/i386-word.exp
	* gdb.arch/mips-fcr.exp
	* gdb.arch/powerpc-d128-regs.exp
	* gdb.arch/powerpc-stackless.exp
	* gdb.arch/ppc64-atomic-inst.exp
	* gdb.arch/s390-stackless.exp
	* gdb.arch/s390-tdbregs.exp
	* gdb.arch/s390-vregs.exp
	* gdb.arch/sparc-sysstep.exp
	* gdb.arch/thumb-bx-pc.exp
	* gdb.arch/thumb-singlestep.exp
	* gdb.arch/thumb2-it.exp
	* gdb.arch/vsx-regs.exp
	* gdb.asm/asm-source.exp
	* gdb.base/a2-run.exp
	* gdb.base/advance.exp
	* gdb.base/all-bin.exp
	* gdb.base/anon.exp
	* gdb.base/args.exp
	* gdb.base/arithmet.exp
	* gdb.base/async-shell.exp
	* gdb.base/async.exp
	* gdb.base/attach-pie-noexec.exp
	* gdb.base/attach-twice.exp
	* gdb.base/auto-load.exp
	* gdb.base/bang.exp
	* gdb.base/bitfields.exp
	* gdb.base/break-always.exp
	* gdb.base/break-caller-line.exp
	* gdb.base/break-entry.exp
	* gdb.base/break-inline.exp
	* gdb.base/break-on-linker-gcd-function.exp
	* gdb.base/break-probes.exp
	* gdb.base/break.exp
	* gdb.base/breakpoint-shadow.exp
	* gdb.base/call-ar-st.exp
	* gdb.base/call-sc.exp
	* gdb.base/call-signal-resume.exp
	* gdb.base/call-strs.exp
	* gdb.base/callfuncs.exp
	* gdb.base/catch-fork-static.exp
	* gdb.base/catch-gdb-caused-signals.exp
	* gdb.base/catch-load.exp
	* gdb.base/catch-signal-fork.exp
	* gdb.base/catch-signal.exp
	* gdb.base/catch-syscall.exp
	* gdb.base/charset.exp
	* gdb.base/checkpoint.exp
	* gdb.base/chng-syms.exp
	* gdb.base/code-expr.exp
	* gdb.base/code_elim.exp
	* gdb.base/commands.exp
	* gdb.base/completion.exp
	* gdb.base/complex.exp
	* gdb.base/cond-expr.exp
	* gdb.base/condbreak.exp
	* gdb.base/consecutive.exp
	* gdb.base/continue-all-already-running.exp
	* gdb.base/coredump-filter.exp
	* gdb.base/corefile.exp
	* gdb.base/dbx.exp
	* gdb.base/debug-expr.exp
	* gdb.base/define.exp
	* gdb.base/del.exp
	* gdb.base/disabled-location.exp
	* gdb.base/disasm-end-cu.exp
	* gdb.base/disasm-optim.exp
	* gdb.base/display.exp
	* gdb.base/duplicate-bp.exp
	* gdb.base/ena-dis-br.exp
	* gdb.base/ending-run.exp
	* gdb.base/enumval.exp
	* gdb.base/environ.exp
	* gdb.base/eu-strip-infcall.exp
	* gdb.base/eval-avoid-side-effects.exp
	* gdb.base/eval-skip.exp
	* gdb.base/exitsignal.exp
	* gdb.base/expand-psymtabs.exp
	* gdb.base/filesym.exp
	* gdb.base/find-unmapped.exp
	* gdb.base/finish.exp
	* gdb.base/float.exp
	* gdb.base/foll-exec-mode.exp
	* gdb.base/foll-exec.exp
	* gdb.base/foll-fork.exp
	* gdb.base/fortran-sym-case.exp
	* gdb.base/freebpcmd.exp
	* gdb.base/func-ptr.exp
	* gdb.base/func-ptrs.exp
	* gdb.base/funcargs.exp
	* gdb.base/gcore-buffer-overflow.exp
	* gdb.base/gcore-relro-pie.exp
	* gdb.base/gcore-relro.exp
	* gdb.base/gcore.exp
	* gdb.base/gdb1090.exp
	* gdb.base/gdb11530.exp
	* gdb.base/gdb11531.exp
	* gdb.base/gdb1821.exp
	* gdb.base/gdbindex-stabs.exp
	* gdb.base/gdbvars.exp
	* gdb.base/hbreak.exp
	* gdb.base/hbreak2.exp
	* gdb.base/included.exp
	* gdb.base/infcall-input.exp
	* gdb.base/inferior-died.exp
	* gdb.base/infnan.exp
	* gdb.base/info-macros.exp
	* gdb.base/info-os.exp
	* gdb.base/info-proc.exp
	* gdb.base/info-shared.exp
	* gdb.base/info-target.exp
	* gdb.base/infoline.exp
	* gdb.base/interp.exp
	* gdb.base/interrupt.exp
	* gdb.base/jit-reader.exp
	* gdb.base/jit-simple.exp
	* gdb.base/kill-after-signal.exp
	* gdb.base/kill-detach-inferiors-cmd.exp
	* gdb.base/label.exp
	* gdb.base/langs.exp
	* gdb.base/ldbl_e308.exp
	* gdb.base/line-symtabs.exp
	* gdb.base/linespecs.exp
	* gdb.base/list.exp
	* gdb.base/long_long.exp
	* gdb.base/longest-types.exp
	* gdb.base/maint.exp
	* gdb.base/max-value-size.exp
	* gdb.base/memattr.exp
	* gdb.base/mips_pro.exp
	* gdb.base/morestack.exp
	* gdb.base/moribund-step.exp
	* gdb.base/multi-forks.exp
	* gdb.base/nested-addr.exp
	* gdb.base/nextoverexit.exp
	* gdb.base/noreturn-finish.exp
	* gdb.base/noreturn-return.exp
	* gdb.base/nostdlib.exp
	* gdb.base/offsets.exp
	* gdb.base/opaque.exp
	* gdb.base/pc-fp.exp
	* gdb.base/permissions.exp
	* gdb.base/print-symbol-loading.exp
	* gdb.base/prologue-include.exp
	* gdb.base/psymtab.exp
	* gdb.base/ptype.exp
	* gdb.base/random-signal.exp
	* gdb.base/randomize.exp
	* gdb.base/range-stepping.exp
	* gdb.base/readline-ask.exp
	* gdb.base/recpar.exp
	* gdb.base/recurse.exp
	* gdb.base/relational.exp
	* gdb.base/restore.exp
	* gdb.base/return-nodebug.exp
	* gdb.base/return.exp
	* gdb.base/run-after-attach.exp
	* gdb.base/save-bp.exp
	* gdb.base/scope.exp
	* gdb.base/sect-cmd.exp
	* gdb.base/set-lang-auto.exp
	* gdb.base/set-noassign.exp
	* gdb.base/setvar.exp
	* gdb.base/sigall.exp
	* gdb.base/sigbpt.exp
	* gdb.base/siginfo-addr.exp
	* gdb.base/siginfo-infcall.exp
	* gdb.base/siginfo-obj.exp
	* gdb.base/siginfo.exp
	* gdb.base/signals-state-child.exp
	* gdb.base/signest.exp
	* gdb.base/sigstep.exp
	* gdb.base/sizeof.exp
	* gdb.base/skip.exp
	* gdb.base/solib-corrupted.exp
	* gdb.base/solib-nodir.exp
	* gdb.base/solib-search.exp
	* gdb.base/stack-checking.exp
	* gdb.base/stale-infcall.exp
	* gdb.base/stap-probe.exp
	* gdb.base/start.exp
	* gdb.base/step-break.exp
	* gdb.base/step-bt.exp
	* gdb.base/step-line.exp
	* gdb.base/step-over-exit.exp
	* gdb.base/step-over-syscall.exp
	* gdb.base/step-resume-infcall.exp
	* gdb.base/step-test.exp
	* gdb.base/store.exp
	* gdb.base/structs3.exp
	* gdb.base/sym-file.exp
	* gdb.base/symbol-without-target_section.exp
	* gdb.base/term.exp
	* gdb.base/testenv.exp
	* gdb.base/ui-redirect.exp
	* gdb.base/until.exp
	* gdb.base/unwindonsignal.exp
	* gdb.base/value-double-free.exp
	* gdb.base/vla-datatypes.exp
	* gdb.base/vla-ptr.exp
	* gdb.base/vla-sideeffect.exp
	* gdb.base/volatile.exp
	* gdb.base/watch-cond-infcall.exp
	* gdb.base/watch-cond.exp
	* gdb.base/watch-non-mem.exp
	* gdb.base/watch-read.exp
	* gdb.base/watch-vfork.exp
	* gdb.base/watchpoint-cond-gone.exp
	* gdb.base/watchpoint-delete.exp
	* gdb.base/watchpoint-hw-hit-once.exp
	* gdb.base/watchpoint-hw.exp
	* gdb.base/watchpoint-stops-at-right-insn.exp
	* gdb.base/watchpoints.exp
	* gdb.base/wchar.exp
	* gdb.base/whatis-exp.exp
	* gdb.btrace/buffer-size.exp
	* gdb.btrace/data.exp
	* gdb.btrace/delta.exp
	* gdb.btrace/dlopen.exp
	* gdb.btrace/enable.exp
	* gdb.btrace/exception.exp
	* gdb.btrace/function_call_history.exp
	* gdb.btrace/gcore.exp
	* gdb.btrace/instruction_history.exp
	* gdb.btrace/nohist.exp
	* gdb.btrace/reconnect.exp
	* gdb.btrace/record_goto-step.exp
	* gdb.btrace/record_goto.exp
	* gdb.btrace/rn-dl-bind.exp
	* gdb.btrace/segv.exp
	* gdb.btrace/step.exp
	* gdb.btrace/stepi.exp
	* gdb.btrace/tailcall-only.exp
	* gdb.btrace/tailcall.exp
	* gdb.btrace/tsx.exp
	* gdb.btrace/unknown_functions.exp
	* gdb.btrace/vdso.exp
	* gdb.compile/compile-ifunc.exp
	* gdb.compile/compile-ops.exp
	* gdb.compile/compile-print.exp
	* gdb.compile/compile-setjmp.exp
	* gdb.cp/abstract-origin.exp
	* gdb.cp/ambiguous.exp
	* gdb.cp/annota2.exp
	* gdb.cp/annota3.exp
	* gdb.cp/anon-ns.exp
	* gdb.cp/anon-struct.exp
	* gdb.cp/anon-union.exp
	* gdb.cp/arg-reference.exp
	* gdb.cp/baseenum.exp
	* gdb.cp/bool.exp
	* gdb.cp/breakpoint.exp
	* gdb.cp/bs15503.exp
	* gdb.cp/call-c.exp
	* gdb.cp/casts.exp
	* gdb.cp/chained-calls.exp
	* gdb.cp/class2.exp
	* gdb.cp/classes.exp
	* gdb.cp/cmpd-minsyms.exp
	* gdb.cp/converts.exp
	* gdb.cp/cp-relocate.exp
	* gdb.cp/cpcompletion.exp
	* gdb.cp/cpexprs.exp
	* gdb.cp/cplabel.exp
	* gdb.cp/cplusfuncs.exp
	* gdb.cp/cpsizeof.exp
	* gdb.cp/ctti.exp
	* gdb.cp/derivation.exp
	* gdb.cp/destrprint.exp
	* gdb.cp/dispcxx.exp
	* gdb.cp/enum-class.exp
	* gdb.cp/exception.exp
	* gdb.cp/exceptprint.exp
	* gdb.cp/expand-psymtabs-cxx.exp
	* gdb.cp/expand-sals.exp
	* gdb.cp/extern-c.exp
	* gdb.cp/filename.exp
	* gdb.cp/formatted-ref.exp
	* gdb.cp/fpointer.exp
	* gdb.cp/gdb1355.exp
	* gdb.cp/gdb2495.exp
	* gdb.cp/hang.exp
	* gdb.cp/impl-this.exp
	* gdb.cp/infcall-dlopen.exp
	* gdb.cp/inherit.exp
	* gdb.cp/iostream.exp
	* gdb.cp/koenig.exp
	* gdb.cp/local.exp
	* gdb.cp/m-data.exp
	* gdb.cp/m-static.exp
	* gdb.cp/mb-ctor.exp
	* gdb.cp/mb-inline.exp
	* gdb.cp/mb-templates.exp
	* gdb.cp/member-name.exp
	* gdb.cp/member-ptr.exp
	* gdb.cp/meth-typedefs.exp
	* gdb.cp/method.exp
	* gdb.cp/method2.exp
	* gdb.cp/minsym-fallback.exp
	* gdb.cp/misc.exp
	* gdb.cp/namelessclass.exp
	* gdb.cp/namespace-enum.exp
	* gdb.cp/namespace-nested-import.exp
	* gdb.cp/namespace.exp
	* gdb.cp/nextoverthrow.exp
	* gdb.cp/no-dmgl-verbose.exp
	* gdb.cp/non-trivial-retval.exp
	* gdb.cp/noparam.exp
	* gdb.cp/nsdecl.exp
	* gdb.cp/nsimport.exp
	* gdb.cp/nsnested.exp
	* gdb.cp/nsnoimports.exp
	* gdb.cp/nsrecurs.exp
	* gdb.cp/nsstress.exp
	* gdb.cp/nsusing.exp
	* gdb.cp/operator.exp
	* gdb.cp/oranking.exp
	* gdb.cp/overload-const.exp
	* gdb.cp/overload.exp
	* gdb.cp/ovldbreak.exp
	* gdb.cp/ovsrch.exp
	* gdb.cp/paren-type.exp
	* gdb.cp/parse-lang.exp
	* gdb.cp/pass-by-ref.exp
	* gdb.cp/pr-1023.exp
	* gdb.cp/pr-1210.exp
	* gdb.cp/pr-574.exp
	* gdb.cp/pr10687.exp
	* gdb.cp/pr12028.exp
	* gdb.cp/pr17132.exp
	* gdb.cp/pr17494.exp
	* gdb.cp/pr9067.exp
	* gdb.cp/pr9167.exp
	* gdb.cp/pr9631.exp
	* gdb.cp/printmethod.exp
	* gdb.cp/psmang.exp
	* gdb.cp/psymtab-parameter.exp
	* gdb.cp/ptype-cv-cp.exp
	* gdb.cp/ptype-flags.exp
	* gdb.cp/re-set-overloaded.exp
	* gdb.cp/ref-types.exp
	* gdb.cp/rtti.exp
	* gdb.cp/scope-err.exp
	* gdb.cp/shadow.exp
	* gdb.cp/smartp.exp
	* gdb.cp/static-method.exp
	* gdb.cp/static-print-quit.exp
	* gdb.cp/temargs.exp
	* gdb.cp/templates.exp
	* gdb.cp/try_catch.exp
	* gdb.cp/typedef-operator.exp
	* gdb.cp/typeid.exp
	* gdb.cp/userdef.exp
	* gdb.cp/using-crash.exp
	* gdb.cp/var-tag.exp
	* gdb.cp/virtbase.exp
	* gdb.cp/virtfunc.exp
	* gdb.cp/virtfunc2.exp
	* gdb.cp/vla-cxx.exp
	* gdb.disasm/t01_mov.exp
	* gdb.disasm/t02_mova.exp
	* gdb.disasm/t03_add.exp
	* gdb.disasm/t04_sub.exp
	* gdb.disasm/t05_cmp.exp
	* gdb.disasm/t06_ari2.exp
	* gdb.disasm/t07_ari3.exp
	* gdb.disasm/t08_or.exp
	* gdb.disasm/t09_xor.exp
	* gdb.disasm/t10_and.exp
	* gdb.disasm/t11_logs.exp
	* gdb.disasm/t12_bit.exp
	* gdb.disasm/t13_otr.exp
	* gdb.dlang/circular.exp
	* gdb.dwarf2/arr-stride.exp
	* gdb.dwarf2/arr-subrange.exp
	* gdb.dwarf2/atomic-type.exp
	* gdb.dwarf2/bad-regnum.exp
	* gdb.dwarf2/bitfield-parent-optimized-out.exp
	* gdb.dwarf2/callframecfa.exp
	* gdb.dwarf2/clztest.exp
	* gdb.dwarf2/corrupt.exp
	* gdb.dwarf2/data-loc.exp
	* gdb.dwarf2/dup-psym.exp
	* gdb.dwarf2/dw2-anon-mptr.exp
	* gdb.dwarf2/dw2-anonymous-func.exp
	* gdb.dwarf2/dw2-bad-mips-linkage-name.exp
	* gdb.dwarf2/dw2-bad-unresolved.exp
	* gdb.dwarf2/dw2-basic.exp
	* gdb.dwarf2/dw2-canonicalize-type.exp
	* gdb.dwarf2/dw2-case-insensitive.exp
	* gdb.dwarf2/dw2-common-block.exp
	* gdb.dwarf2/dw2-compdir-oldgcc.exp
	* gdb.dwarf2/dw2-compressed.exp
	* gdb.dwarf2/dw2-const.exp
	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp
	* gdb.dwarf2/dw2-cu-size.exp
	* gdb.dwarf2/dw2-dup-frame.exp
	* gdb.dwarf2/dw2-entry-value.exp
	* gdb.dwarf2/dw2-icycle.exp
	* gdb.dwarf2/dw2-ifort-parameter.exp
	* gdb.dwarf2/dw2-inline-break.exp
	* gdb.dwarf2/dw2-inline-param.exp
	* gdb.dwarf2/dw2-intercu.exp
	* gdb.dwarf2/dw2-intermix.exp
	* gdb.dwarf2/dw2-lexical-block-bare.exp
	* gdb.dwarf2/dw2-linkage-name-trust.exp
	* gdb.dwarf2/dw2-minsym-in-cu.exp
	* gdb.dwarf2/dw2-noloc.exp
	* gdb.dwarf2/dw2-op-call.exp
	* gdb.dwarf2/dw2-op-out-param.exp
	* gdb.dwarf2/dw2-opt-structptr.exp
	* gdb.dwarf2/dw2-param-error.exp
	* gdb.dwarf2/dw2-producer.exp
	* gdb.dwarf2/dw2-ranges-base.exp
	* gdb.dwarf2/dw2-ref-missing-frame.exp
	* gdb.dwarf2/dw2-reg-undefined.exp
	* gdb.dwarf2/dw2-regno-invalid.exp
	* gdb.dwarf2/dw2-restore.exp
	* gdb.dwarf2/dw2-restrict.exp
	* gdb.dwarf2/dw2-single-line-discriminators.exp
	* gdb.dwarf2/dw2-strp.exp
	* gdb.dwarf2/dw2-undefined-ret-addr.exp
	* gdb.dwarf2/dw2-unresolved.exp
	* gdb.dwarf2/dw2-var-zero-addr.exp
	* gdb.dwarf2/dw4-sig-types.exp
	* gdb.dwarf2/dwz.exp
	* gdb.dwarf2/dynarr-ptr.exp
	* gdb.dwarf2/enum-type.exp
	* gdb.dwarf2/gdb-index.exp
	* gdb.dwarf2/implptr-64bit.exp
	* gdb.dwarf2/implptr-optimized-out.exp
	* gdb.dwarf2/implptr.exp
	* gdb.dwarf2/implref-array.exp
	* gdb.dwarf2/implref-const.exp
	* gdb.dwarf2/implref-global.exp
	* gdb.dwarf2/implref-struct.exp
	* gdb.dwarf2/mac-fileno.exp
	* gdb.dwarf2/main-subprogram.exp
	* gdb.dwarf2/member-ptr-forwardref.exp
	* gdb.dwarf2/method-ptr.exp
	* gdb.dwarf2/missing-sig-type.exp
	* gdb.dwarf2/nonvar-access.exp
	* gdb.dwarf2/opaque-type-lookup.exp
	* gdb.dwarf2/pieces-optimized-out.exp
	* gdb.dwarf2/pieces.exp
	* gdb.dwarf2/pr10770.exp
	* gdb.dwarf2/pr13961.exp
	* gdb.dwarf2/staticvirtual.exp
	* gdb.dwarf2/subrange.exp
	* gdb.dwarf2/symtab-producer.exp
	* gdb.dwarf2/trace-crash.exp
	* gdb.dwarf2/typeddwarf.exp
	* gdb.dwarf2/valop.exp
	* gdb.dwarf2/watch-notconst.exp
	* gdb.fortran/array-element.exp
	* gdb.fortran/charset.exp
	* gdb.fortran/common-block.exp
	* gdb.fortran/complex.exp
	* gdb.fortran/derived-type-function.exp
	* gdb.fortran/derived-type.exp
	* gdb.fortran/logical.exp
	* gdb.fortran/module.exp
	* gdb.fortran/multi-dim.exp
	* gdb.fortran/nested-funcs.exp
	* gdb.fortran/print-formatted.exp
	* gdb.fortran/subarray.exp
	* gdb.fortran/vla-alloc-assoc.exp
	* gdb.fortran/vla-datatypes.exp
	* gdb.fortran/vla-history.exp
	* gdb.fortran/vla-ptr-info.exp
	* gdb.fortran/vla-ptype-sub.exp
	* gdb.fortran/vla-ptype.exp
	* gdb.fortran/vla-sizeof.exp
	* gdb.fortran/vla-type.exp
	* gdb.fortran/vla-value-sub-arbitrary.exp
	* gdb.fortran/vla-value-sub-finish.exp
	* gdb.fortran/vla-value-sub.exp
	* gdb.fortran/vla-value.exp
	* gdb.fortran/whatis_type.exp
	* gdb.go/chan.exp
	* gdb.go/handcall.exp
	* gdb.go/hello.exp
	* gdb.go/integers.exp
	* gdb.go/methods.exp
	* gdb.go/package.exp
	* gdb.go/strings.exp
	* gdb.go/types.exp
	* gdb.go/unsafe.exp
	* gdb.guile/scm-arch.exp
	* gdb.guile/scm-block.exp
	* gdb.guile/scm-breakpoint.exp
	* gdb.guile/scm-cmd.exp
	* gdb.guile/scm-disasm.exp
	* gdb.guile/scm-equal.exp
	* gdb.guile/scm-frame-args.exp
	* gdb.guile/scm-frame-inline.exp
	* gdb.guile/scm-frame.exp
	* gdb.guile/scm-iterator.exp
	* gdb.guile/scm-math.exp
	* gdb.guile/scm-objfile.exp
	* gdb.guile/scm-ports.exp
	* gdb.guile/scm-symbol.exp
	* gdb.guile/scm-symtab.exp
	* gdb.guile/scm-value-cc.exp
	* gdb.guile/types-module.exp
	* gdb.linespec/break-ask.exp
	* gdb.linespec/cpexplicit.exp
	* gdb.linespec/explicit.exp
	* gdb.linespec/keywords.exp
	* gdb.linespec/linespec.exp
	* gdb.linespec/ls-dollar.exp
	* gdb.linespec/ls-errs.exp
	* gdb.linespec/skip-two.exp
	* gdb.linespec/thread.exp
	* gdb.mi/mi-async.exp
	* gdb.mi/mi-basics.exp
	* gdb.mi/mi-break.exp
	* gdb.mi/mi-catch-load.exp
	* gdb.mi/mi-cli.exp
	* gdb.mi/mi-cmd-param-changed.exp
	* gdb.mi/mi-console.exp
	* gdb.mi/mi-detach.exp
	* gdb.mi/mi-disassemble.exp
	* gdb.mi/mi-eval.exp
	* gdb.mi/mi-file-transfer.exp
	* gdb.mi/mi-file.exp
	* gdb.mi/mi-fill-memory.exp
	* gdb.mi/mi-inheritance-syntax-error.exp
	* gdb.mi/mi-linespec-err-cp.exp
	* gdb.mi/mi-logging.exp
	* gdb.mi/mi-memory-changed.exp
	* gdb.mi/mi-read-memory.exp
	* gdb.mi/mi-record-changed.exp
	* gdb.mi/mi-reg-undefined.exp
	* gdb.mi/mi-regs.exp
	* gdb.mi/mi-return.exp
	* gdb.mi/mi-reverse.exp
	* gdb.mi/mi-simplerun.exp
	* gdb.mi/mi-solib.exp
	* gdb.mi/mi-stack.exp
	* gdb.mi/mi-stepi.exp
	* gdb.mi/mi-syn-frame.exp
	* gdb.mi/mi-until.exp
	* gdb.mi/mi-var-block.exp
	* gdb.mi/mi-var-child.exp
	* gdb.mi/mi-var-cmd.exp
	* gdb.mi/mi-var-cp.exp
	* gdb.mi/mi-var-display.exp
	* gdb.mi/mi-var-invalidate.exp
	* gdb.mi/mi-var-list-children-invalid-grandchild.exp
	* gdb.mi/mi-vla-fortran.exp
	* gdb.mi/mi-watch.exp
	* gdb.mi/mi2-var-child.exp
	* gdb.mi/user-selected-context-sync.exp
	* gdb.modula2/unbounded-array.exp
	* gdb.multi/dummy-frame-restore.exp
	* gdb.multi/multi-arch-exec.exp
	* gdb.multi/multi-arch.exp
	* gdb.multi/tids.exp
	* gdb.multi/watchpoint-multi.exp
	* gdb.opencl/callfuncs.exp
	* gdb.opencl/convs_casts.exp
	* gdb.opencl/datatypes.exp
	* gdb.opencl/operators.exp
	* gdb.opencl/vec_comps.exp
	* gdb.opt/clobbered-registers-O2.exp
	* gdb.opt/inline-break.exp
	* gdb.opt/inline-bt.exp
	* gdb.opt/inline-cmds.exp
	* gdb.opt/inline-locals.exp
	* gdb.pascal/case-insensitive-symbols.exp
	* gdb.pascal/floats.exp
	* gdb.pascal/gdb11492.exp
	* gdb.python/lib-types.exp
	* gdb.python/py-arch.exp
	* gdb.python/py-as-string.exp
	* gdb.python/py-bad-printers.exp
	* gdb.python/py-block.exp
	* gdb.python/py-breakpoint-create-fail.exp
	* gdb.python/py-breakpoint.exp
	* gdb.python/py-caller-is.exp
	* gdb.python/py-cmd.exp
	* gdb.python/py-explore-cc.exp
	* gdb.python/py-explore.exp
	* gdb.python/py-finish-breakpoint.exp
	* gdb.python/py-finish-breakpoint2.exp
	* gdb.python/py-frame-args.exp
	* gdb.python/py-frame-inline.exp
	* gdb.python/py-frame.exp
	* gdb.python/py-framefilter-mi.exp
	* gdb.python/py-infthread.exp
	* gdb.python/py-lazy-string.exp
	* gdb.python/py-linetable.exp
	* gdb.python/py-mi-events.exp
	* gdb.python/py-mi-objfile.exp
	* gdb.python/py-mi.exp
	* gdb.python/py-objfile.exp
	* gdb.python/py-pp-integral.exp
	* gdb.python/py-pp-maint.exp
	* gdb.python/py-pp-re-notag.exp
	* gdb.python/py-pp-registration.exp
	* gdb.python/py-recurse-unwind.exp
	* gdb.python/py-strfns.exp
	* gdb.python/py-symbol.exp
	* gdb.python/py-symtab.exp
	* gdb.python/py-sync-interp.exp
	* gdb.python/py-typeprint.exp
	* gdb.python/py-unwind-maint.exp
	* gdb.python/py-unwind.exp
	* gdb.python/py-value-cc.exp
	* gdb.python/py-xmethods.exp
	* gdb.reverse/amd64-tailcall-reverse.exp
	* gdb.reverse/break-precsave.exp
	* gdb.reverse/break-reverse.exp
	* gdb.reverse/consecutive-precsave.exp
	* gdb.reverse/consecutive-reverse.exp
	* gdb.reverse/finish-precsave.exp
	* gdb.reverse/finish-reverse-bkpt.exp
	* gdb.reverse/finish-reverse.exp
	* gdb.reverse/fstatat-reverse.exp
	* gdb.reverse/getresuid-reverse.exp
	* gdb.reverse/i386-precsave.exp
	* gdb.reverse/i386-reverse.exp
	* gdb.reverse/i386-sse-reverse.exp
	* gdb.reverse/i387-env-reverse.exp
	* gdb.reverse/i387-stack-reverse.exp
	* gdb.reverse/insn-reverse.exp
	* gdb.reverse/machinestate-precsave.exp
	* gdb.reverse/machinestate.exp
	* gdb.reverse/next-reverse-bkpt-over-sr.exp
	* gdb.reverse/pipe-reverse.exp
	* gdb.reverse/readv-reverse.exp
	* gdb.reverse/recvmsg-reverse.exp
	* gdb.reverse/rerun-prec.exp
	* gdb.reverse/s390-mvcle.exp
	* gdb.reverse/step-precsave.exp
	* gdb.reverse/step-reverse.exp
	* gdb.reverse/time-reverse.exp
	* gdb.reverse/until-precsave.exp
	* gdb.reverse/until-reverse.exp
	* gdb.reverse/waitpid-reverse.exp
	* gdb.reverse/watch-precsave.exp
	* gdb.reverse/watch-reverse.exp
	* gdb.rust/generics.exp
	* gdb.rust/methods.exp
	* gdb.rust/modules.exp
	* gdb.rust/simple.exp
	* gdb.server/connect-with-no-symbol-file.exp
	* gdb.server/ext-attach.exp
	* gdb.server/ext-restart.exp
	* gdb.server/ext-wrapper.exp
	* gdb.server/file-transfer.exp
	* gdb.server/server-exec-info.exp
	* gdb.server/server-kill.exp
	* gdb.server/server-mon.exp
	* gdb.server/wrapper.exp
	* gdb.stabs/exclfwd.exp
	* gdb.stabs/gdb11479.exp
	* gdb.threads/clone-new-thread-event.exp
	* gdb.threads/corethreads.exp
	* gdb.threads/current-lwp-dead.exp
	* gdb.threads/dlopen-libpthread.exp
	* gdb.threads/gcore-thread.exp
	* gdb.threads/sigstep-threads.exp
	* gdb.threads/watchpoint-fork.exp
	* gdb.trace/actions-changed.exp
	* gdb.trace/backtrace.exp
	* gdb.trace/change-loc.exp
	* gdb.trace/circ.exp
	* gdb.trace/collection.exp
	* gdb.trace/disconnected-tracing.exp
	* gdb.trace/ftrace.exp
	* gdb.trace/mi-trace-frame-collected.exp
	* gdb.trace/mi-trace-unavailable.exp
	* gdb.trace/mi-traceframe-changed.exp
	* gdb.trace/mi-tsv-changed.exp
	* gdb.trace/no-attach-trace.exp
	* gdb.trace/passc-dyn.exp
	* gdb.trace/qtro.exp
	* gdb.trace/range-stepping.exp
	* gdb.trace/read-memory.exp
	* gdb.trace/save-trace.exp
	* gdb.trace/signal.exp
	* gdb.trace/status-stop.exp
	* gdb.trace/tfile.exp
	* gdb.trace/trace-break.exp
	* gdb.trace/trace-buffer-size.exp
	* gdb.trace/trace-condition.exp
	* gdb.trace/tracefile-pseudo-reg.exp
	* gdb.trace/tstatus.exp
	* gdb.trace/unavailable.exp
	* gdb.trace/while-dyn.exp
	* gdb.trace/while-stepping.exp
2016-12-23 10:52:18 -06:00
Luis Machado 84c93cd5f1 Fixup testcases outputting own name as a test name and standardize failed compilation messages
Changes in v3:

- Adjusted some testcases where the message "failed to compile" was not unique.

Changes in v2:

- Addressed comments from reviewers.
- Fixed spurious whitespaces.
- Changed compilation failure messages that included source/binary paths to
  ones that are short and deterministic.

---

Another bit of cleanup to the testsuite. We have a number of tests that are
not honoring the rule of not outputting their own name as a test name.

I fixed up all the offenders i could find with the following regular
expression:

"(xfail|kfail|kpass|fail|pass|unsupported|untested) ([A-Za-z0-9]+|\\\$(.)*testfile(.)*)\.exp$"

gdb/testsuite/ChangeLog:
2016-12-01  Luis Machado  <lgustavo@codesourcery.com>

	Fix test names and standardize compilation error messages throughout
	the following files:

	* gdb.ada/start.exp
	* gdb.arch/alpha-step.exp
	* gdb.arch/e500-prologue.exp
	* gdb.arch/ftrace-insn-reloc.exp
	* gdb.arch/gdb1291.exp
	* gdb.arch/gdb1431.exp
	* gdb.arch/gdb1558.exp
	* gdb.arch/i386-dr3-watch.exp
	* gdb.arch/i386-sse-stack-align.exp
	* gdb.arch/ia64-breakpoint-shadow.exp
	* gdb.arch/pa-nullify.exp
	* gdb.arch/powerpc-aix-prologue.exp
	* gdb.arch/thumb-bx-pc.exp
	* gdb.base/annota1.exp
	* gdb.base/annota3.exp
	* gdb.base/arrayidx.exp
	* gdb.base/assign.exp
	* gdb.base/attach.exp
	* gdb.base/auxv.exp
	* gdb.base/bang.exp
	* gdb.base/bfp-test.exp
	* gdb.base/bigcore.exp
	* gdb.base/bitfields2.exp
	* gdb.base/break-fun-addr.exp
	* gdb.base/break-probes.exp
	* gdb.base/call-rt-st.exp
	* gdb.base/callexit.exp
	* gdb.base/catch-fork-kill.exp
	* gdb.base/charset.exp
	* gdb.base/checkpoint.exp
	* gdb.base/comprdebug.exp
	* gdb.base/constvars.exp
	* gdb.base/coredump-filter.exp
	* gdb.base/cursal.exp
	* gdb.base/cvexpr.exp
	* gdb.base/detach.exp
	* gdb.base/display.exp
	* gdb.base/dmsym.exp
	* gdb.base/dprintf-pending.exp
	* gdb.base/dso2dso.exp
	* gdb.base/dtrace-probe.exp
	* gdb.base/dump.exp
	* gdb.base/enum_cond.exp
	* gdb.base/exe-lock.exp
	* gdb.base/exec-invalid-sysroot.exp
	* gdb.base/execl-update-breakpoints.exp
	* gdb.base/exprs.exp
	* gdb.base/fileio.exp
	* gdb.base/find.exp
	* gdb.base/finish.exp
	* gdb.base/fixsection.exp
	* gdb.base/foll-vfork.exp
	* gdb.base/frame-args.exp
	* gdb.base/gcore.exp
	* gdb.base/gdb1250.exp
	* gdb.base/global-var-nested-by-dso.exp
	* gdb.base/gnu-ifunc.exp
	* gdb.base/hashline1.exp
	* gdb.base/hashline2.exp
	* gdb.base/hashline3.exp
	* gdb.base/hbreak-in-shr-unsupported.exp
	* gdb.base/huge.exp
	* gdb.base/infcall-input.exp
	* gdb.base/info-fun.exp
	* gdb.base/info-shared.exp
	* gdb.base/jit-simple.exp
	* gdb.base/jit-so.exp
	* gdb.base/jit.exp
	* gdb.base/jump.exp
	* gdb.base/label.exp
	* gdb.base/lineinc.exp
	* gdb.base/logical.exp
	* gdb.base/longjmp.exp
	* gdb.base/macscp.exp
	* gdb.base/miscexprs.exp
	* gdb.base/new-ui-echo.exp
	* gdb.base/new-ui-pending-input.exp
	* gdb.base/new-ui.exp
	* gdb.base/nodebug.exp
	* gdb.base/nofield.exp
	* gdb.base/offsets.exp
	* gdb.base/overlays.exp
	* gdb.base/pending.exp
	* gdb.base/pointers.exp
	* gdb.base/pr11022.exp
	* gdb.base/printcmds.exp
	* gdb.base/prologue.exp
	* gdb.base/ptr-typedef.exp
	* gdb.base/realname-expand.exp
	* gdb.base/relativedebug.exp
	* gdb.base/relocate.exp
	* gdb.base/remote.exp
	* gdb.base/reread.exp
	* gdb.base/return2.exp
	* gdb.base/savedregs.exp
	* gdb.base/sep.exp
	* gdb.base/sepdebug.exp
	* gdb.base/sepsymtab.exp
	* gdb.base/set-inferior-tty.exp
	* gdb.base/setshow.exp
	* gdb.base/shlib-call.exp
	* gdb.base/sigaltstack.exp
	* gdb.base/siginfo-addr.exp
	* gdb.base/signals.exp
	* gdb.base/signull.exp
	* gdb.base/sigrepeat.exp
	* gdb.base/so-impl-ld.exp
	* gdb.base/solib-display.exp
	* gdb.base/solib-overlap.exp
	* gdb.base/solib-search.exp
	* gdb.base/solib-symbol.exp
	* gdb.base/structs.exp
	* gdb.base/structs2.exp
	* gdb.base/symtab-search-order.exp
	* gdb.base/twice.exp
	* gdb.base/unload.exp
	* gdb.base/varargs.exp
	* gdb.base/watchpoint-solib.exp
	* gdb.base/watchpoint.exp
	* gdb.base/whatis.exp
	* gdb.base/wrong_frame_bt_full.exp
	* gdb.btrace/dlopen.exp
	* gdb.cell/ea-standalone.exp
	* gdb.cell/ea-test.exp
	* gdb.cp/dispcxx.exp
	* gdb.cp/gdb2384.exp
	* gdb.cp/method2.exp
	* gdb.cp/nextoverthrow.exp
	* gdb.cp/pr10728.exp
	* gdb.disasm/am33.exp
	* gdb.disasm/h8300s.exp
	* gdb.disasm/mn10300.exp
	* gdb.disasm/sh3.exp
	* gdb.dwarf2/dw2-dir-file-name.exp
	* gdb.fortran/complex.exp
	* gdb.fortran/library-module.exp
	* gdb.guile/scm-pretty-print.exp
	* gdb.guile/scm-symbol.exp
	* gdb.guile/scm-type.exp
	* gdb.guile/scm-value.exp
	* gdb.linespec/linespec.exp
	* gdb.mi/gdb701.exp
	* gdb.mi/gdb792.exp
	* gdb.mi/mi-breakpoint-changed.exp
	* gdb.mi/mi-dprintf-pending.exp
	* gdb.mi/mi-dprintf.exp
	* gdb.mi/mi-exit-code.exp
	* gdb.mi/mi-pending.exp
	* gdb.mi/mi-solib.exp
	* gdb.mi/new-ui-mi-sync.exp
	* gdb.mi/pr11022.exp
	* gdb.mi/user-selected-context-sync.exp
	* gdb.opt/solib-intra-step.exp
	* gdb.python/py-events.exp
	* gdb.python/py-finish-breakpoint.exp
	* gdb.python/py-mi.exp
	* gdb.python/py-prettyprint.exp
	* gdb.python/py-shared.exp
	* gdb.python/py-symbol.exp
	* gdb.python/py-template.exp
	* gdb.python/py-type.exp
	* gdb.python/py-value.exp
	* gdb.reverse/solib-precsave.exp
	* gdb.reverse/solib-reverse.exp
	* gdb.server/solib-list.exp
	* gdb.stabs/weird.exp
	* gdb.threads/reconnect-signal.exp
	* gdb.threads/stepi-random-signal.exp
	* gdb.trace/actions.exp
	* gdb.trace/ax.exp
	* gdb.trace/backtrace.exp
	* gdb.trace/change-loc.exp
	* gdb.trace/deltrace.exp
	* gdb.trace/ftrace-lock.exp
	* gdb.trace/ftrace.exp
	* gdb.trace/infotrace.exp
	* gdb.trace/mi-tracepoint-changed.exp
	* gdb.trace/packetlen.exp
	* gdb.trace/passcount.exp
	* gdb.trace/pending.exp
	* gdb.trace/range-stepping.exp
	* gdb.trace/report.exp
	* gdb.trace/stap-trace.exp
	* gdb.trace/tfind.exp
	* gdb.trace/trace-break.exp
	* gdb.trace/trace-condition.exp
	* gdb.trace/trace-enable-disable.exp
	* gdb.trace/trace-mt.exp
	* gdb.trace/tracecmd.exp
	* gdb.trace/tspeed.exp
	* gdb.trace/tsv.exp
	* lib/perftest.exp
2016-12-01 14:47:50 -06:00
Luis Machado cdc7edd7b1 Fix test names starting with uppercase using gdb_test on a single line.
Changes in v3:
  Fixed incorrect substitutions.

This fixes offender testcases that have test names starting with uppercase
when using gdb_test in a single line construct.

gdb/testsuite/ChangeLog
2016-12-01  Luis Machado  <lgustavo@codesourcery.com>

	Fix test names starting with uppercase throughout the files.

	* gdb.arch/i386-mpx-simple_segv.exp
	* gdb.arch/i386-mpx.exp
	* gdb.arch/i386-permbkpt.exp
	* gdb.arch/pa-nullify.exp
	* gdb.arch/powerpc-d128-regs.exp
	* gdb.arch/vsx-regs.exp
	* gdb.base/bfp-test.exp
	* gdb.base/break.exp
	* gdb.base/breakpoint-shadow.exp
	* gdb.base/callfuncs.exp
	* gdb.base/charset.exp
	* gdb.base/commands.exp
	* gdb.base/completion.exp
	* gdb.base/dfp-test.exp
	* gdb.base/echo.exp
	* gdb.base/ending-run.exp
	* gdb.base/eval.exp
	* gdb.base/expand-psymtabs.exp
	* gdb.base/float128.exp
	* gdb.base/floatn.exp
	* gdb.base/foll-exec-mode.exp
	* gdb.base/gdb1056.exp
	* gdb.base/gdb11531.exp
	* gdb.base/kill-after-signal.exp
	* gdb.base/multi-forks.exp
	* gdb.base/overlays.exp
	* gdb.base/pending.exp
	* gdb.base/sepdebug.exp
	* gdb.base/testenv.exp
	* gdb.base/valgrind-db-attach.exp
	* gdb.base/watch_thread_num.exp
	* gdb.base/watchpoint-cond-gone.exp
	* gdb.base/watchpoint.exp
	* gdb.base/watchpoints.exp
	* gdb.cp/arg-reference.exp
	* gdb.cp/baseenum.exp
	* gdb.cp/operator.exp
	* gdb.cp/shadow.exp
	* gdb.dwarf2/dw2-op-out-param.exp
	* gdb.dwarf2/dw2-reg-undefined.exp
	* gdb.go/chan.exp
	* gdb.go/hello.exp
	* gdb.go/integers.exp
	* gdb.go/methods.exp
	* gdb.go/package.exp
	* gdb.guile/scm-parameter.exp
	* gdb.guile/scm-progspace.exp
	* gdb.guile/scm-value.exp
	* gdb.mi/mi-pending.exp
	* gdb.mi/user-selected-context-sync.exp
	* gdb.multi/multi-attach.exp
	* gdb.multi/tids.exp
	* gdb.opt/clobbered-registers-O2.exp
	* gdb.pascal/floats.exp
	* gdb.pascal/integers.exp
	* gdb.python/py-block.exp
	* gdb.python/py-events.exp
	* gdb.python/py-parameter.exp
	* gdb.python/py-symbol.exp
	* gdb.python/py-symtab.exp
	* gdb.python/py-type.exp
	* gdb.python/py-value.exp
	* gdb.python/py-xmethods.exp
	* gdb.python/python.exp
	* gdb.reverse/break-precsave.exp
	* gdb.reverse/consecutive-precsave.exp
	* gdb.reverse/finish-precsave.exp
	* gdb.reverse/i386-precsave.exp
	* gdb.reverse/machinestate-precsave.exp
	* gdb.reverse/sigall-precsave.exp
	* gdb.reverse/solib-precsave.exp
	* gdb.reverse/step-precsave.exp
	* gdb.reverse/until-precsave.exp
	* gdb.reverse/watch-precsave.exp
	* gdb.server/ext-attach.exp
	* gdb.server/ext-restart.exp
	* gdb.server/ext-run.exp
	* gdb.server/ext-wrapper.exp
	* gdb.stabs/gdb11479.exp
	* gdb.stabs/weird.exp
	* gdb.threads/attach-many-short-lived-threads.exp
	* gdb.threads/kill.exp
	* gdb.threads/watchpoint-fork.exp
2016-12-01 14:41:23 -06:00
Luis Machado bc6c7af4a2 Fix test names starting with uppercase output by basic functions
The following patch is based on the previous patch i sent and handles cases of
test names that start with an uppercase letter. Test names should start with
lowercase unless it starts with the name of a technology, architecture, ISA
etc.

This first patch addresses cases of test names output explicitly via xfail,
kfail, kpass, fail, pass, unsupported, untested and also names set with the
pattern "set test" and "set testname".

gdb/testsuite/ChangeLog:
2016-12-01  Luis Machado  <lgustavo@codesourcery.com>

	Fix test names starting with uppercase throughout all the files below.

	* gdb.ada/array_return.exp
	* gdb.ada/catch_ex.exp
	* gdb.ada/info_exc.exp
	* gdb.ada/mi_catch_ex.exp
	* gdb.ada/mi_dyn_arr.exp
	* gdb.ada/mi_ex_cond.exp
	* gdb.ada/mi_exc_info.exp
	* gdb.ada/mi_interface.exp
	* gdb.ada/mi_task_arg.exp
	* gdb.ada/mi_task_info.exp
	* gdb.ada/mi_var_array.exp
	* gdb.arch/alpha-step.exp
	* gdb.arch/amd64-disp-step.exp
	* gdb.arch/arm-disp-step.exp
	* gdb.arch/disp-step-insn-reloc.exp
	* gdb.arch/e500-prologue.exp
	* gdb.arch/ftrace-insn-reloc.exp
	* gdb.arch/gdb1558.exp
	* gdb.arch/i386-bp_permanent.exp
	* gdb.arch/i386-disp-step.exp
	* gdb.arch/i386-float.exp
	* gdb.arch/i386-gnu-cfi.exp
	* gdb.arch/ia64-breakpoint-shadow.exp
	* gdb.arch/mips16-thunks.exp
	* gdb.arch/pa-nullify.exp
	* gdb.arch/powerpc-aix-prologue.exp
	* gdb.arch/powerpc-power.exp
	* gdb.arch/ppc-dfp.exp
	* gdb.arch/s390-tdbregs.exp
	* gdb.arch/spu-info.exp
	* gdb.arch/spu-ls.exp
	* gdb.arch/thumb-bx-pc.exp
	* gdb.base/advance.exp
	* gdb.base/annota-input-while-running.exp
	* gdb.base/arrayidx.exp
	* gdb.base/asmlabel.exp
	* gdb.base/async.exp
	* gdb.base/attach-wait-input.exp
	* gdb.base/auto-connect-native-target.exp
	* gdb.base/batch-preserve-term-settings.exp
	* gdb.base/bfp-test.exp
	* gdb.base/bigcore.exp
	* gdb.base/bp-permanent.exp
	* gdb.base/break-always.exp
	* gdb.base/break-fun-addr.exp
	* gdb.base/break-idempotent.exp
	* gdb.base/break-main-file-remove-fail.exp
	* gdb.base/break-probes.exp
	* gdb.base/break-unload-file.exp
	* gdb.base/break.exp
	* gdb.base/call-ar-st.exp
	* gdb.base/call-rt-st.exp
	* gdb.base/call-sc.exp
	* gdb.base/call-signal-resume.exp
	* gdb.base/call-strs.exp
	* gdb.base/callexit.exp
	* gdb.base/callfuncs.exp
	* gdb.base/catch-gdb-caused-signals.exp
	* gdb.base/catch-signal-siginfo-cond.exp
	* gdb.base/catch-syscall.exp
	* gdb.base/compare-sections.exp
	* gdb.base/cond-eval-mode.exp
	* gdb.base/condbreak-call-false.exp
	* gdb.base/consecutive-step-over.exp
	* gdb.base/cursal.exp
	* gdb.base/disabled-location.exp
	* gdb.base/disasm-end-cu.exp
	* gdb.base/display.exp
	* gdb.base/double-prompt-target-event-error.exp
	* gdb.base/dprintf-bp-same-addr.exp
	* gdb.base/dprintf-detach.exp
	* gdb.base/dprintf-next.exp
	* gdb.base/dprintf-non-stop.exp
	* gdb.base/dprintf-pending.exp
	* gdb.base/dso2dso.exp
	* gdb.base/ending-run.exp
	* gdb.base/enum_cond.exp
	* gdb.base/examine-backward.exp
	* gdb.base/exe-lock.exp
	* gdb.base/exec-invalid-sysroot.exp
	* gdb.base/execl-update-breakpoints.exp
	* gdb.base/execution-termios.exp
	* gdb.base/fileio.exp
	* gdb.base/fixsection.exp
	* gdb.base/foll-exec-mode.exp
	* gdb.base/foll-exec.exp
	* gdb.base/fork-running-state.exp
	* gdb.base/frame-args.exp
	* gdb.base/fullpath-expand.exp
	* gdb.base/func-ptr.exp
	* gdb.base/gcore-relro-pie.exp
	* gdb.base/gdb1090.exp
	* gdb.base/gdb1555.exp
	* gdb.base/global-var-nested-by-dso.exp
	* gdb.base/gnu-ifunc.exp
	* gdb.base/hbreak-in-shr-unsupported.exp
	* gdb.base/hbreak-unmapped.exp
	* gdb.base/hook-stop.exp
	* gdb.base/infcall-input.exp
	* gdb.base/info-fun.exp
	* gdb.base/info-shared.exp
	* gdb.base/interrupt-noterm.exp
	* gdb.base/jit-so.exp
	* gdb.base/jit.exp
	* gdb.base/line-symtabs.exp
	* gdb.base/list.exp
	* gdb.base/longjmp.exp
	* gdb.base/macscp.exp
	* gdb.base/max-value-size.exp
	* gdb.base/nodebug.exp
	* gdb.base/nofield.exp
	* gdb.base/overlays.exp
	* gdb.base/paginate-after-ctrl-c-running.exp
	* gdb.base/paginate-bg-execution.exp
	* gdb.base/paginate-inferior-exit.exp
	* gdb.base/pending.exp
	* gdb.base/pr11022.exp
	* gdb.base/printcmds.exp
	* gdb.base/ptr-typedef.exp
	* gdb.base/ptype.exp
	* gdb.base/randomize.exp
	* gdb.base/range-stepping.exp
	* gdb.base/realname-expand.exp
	* gdb.base/relativedebug.exp
	* gdb.base/remote.exp
	* gdb.base/savedregs.exp
	* gdb.base/sepdebug.exp
	* gdb.base/set-noassign.exp
	* gdb.base/shlib-call.exp
	* gdb.base/shreloc.exp
	* gdb.base/sigaltstack.exp
	* gdb.base/sigbpt.exp
	* gdb.base/siginfo-addr.exp
	* gdb.base/siginfo-obj.exp
	* gdb.base/siginfo-thread.exp
	* gdb.base/signest.exp
	* gdb.base/signull.exp
	* gdb.base/sigrepeat.exp
	* gdb.base/skip.exp
	* gdb.base/so-impl-ld.exp
	* gdb.base/solib-corrupted.exp
	* gdb.base/solib-disc.exp
	* gdb.base/solib-display.exp
	* gdb.base/solib-overlap.exp
	* gdb.base/solib-search.exp
	* gdb.base/solib-symbol.exp
	* gdb.base/source-execution.exp
	* gdb.base/sss-bp-on-user-bp-2.exp
	* gdb.base/sss-bp-on-user-bp.exp
	* gdb.base/stack-checking.exp
	* gdb.base/stale-infcall.exp
	* gdb.base/step-break.exp
	* gdb.base/step-line.exp
	* gdb.base/step-over-exit.exp
	* gdb.base/step-test.exp
	* gdb.base/structs.exp
	* gdb.base/sym-file.exp
	* gdb.base/symtab-search-order.exp
	* gdb.base/term.exp
	* gdb.base/type-opaque.exp
	* gdb.base/unload.exp
	* gdb.base/until-nodebug.exp
	* gdb.base/until.exp
	* gdb.base/unwindonsignal.exp
	* gdb.base/watch-cond.exp
	* gdb.base/watch-non-mem.exp
	* gdb.base/watch_thread_num.exp
	* gdb.base/watchpoint-reuse-slot.exp
	* gdb.base/watchpoint-solib.exp
	* gdb.base/watchpoint.exp
	* gdb.btrace/dlopen.exp
	* gdb.cell/arch.exp
	* gdb.cell/break.exp
	* gdb.cell/bt.exp
	* gdb.cell/core.exp
	* gdb.cell/data.exp
	* gdb.cell/dwarfaddr.exp
	* gdb.cell/ea-cache.exp
	* gdb.cell/ea-standalone.exp
	* gdb.cell/ea-test.exp
	* gdb.cell/f-regs.exp
	* gdb.cell/fork.exp
	* gdb.cell/gcore.exp
	* gdb.cell/mem-access.exp
	* gdb.cell/ptype.exp
	* gdb.cell/registers.exp
	* gdb.cell/sizeof.exp
	* gdb.cell/solib-symbol.exp
	* gdb.cell/solib.exp
	* gdb.compile/compile-tls.exp
	* gdb.cp/exception.exp
	* gdb.cp/gdb2495.exp
	* gdb.cp/local.exp
	* gdb.cp/mb-inline.exp
	* gdb.cp/mb-templates.exp
	* gdb.cp/pr10687.exp
	* gdb.cp/pr9167.exp
	* gdb.cp/scope-err.exp
	* gdb.cp/templates.exp
	* gdb.cp/virtfunc.exp
	* gdb.dwarf2/dw2-dir-file-name.exp
	* gdb.dwarf2/dw2-single-line-discriminators.exp
	* gdb.fortran/complex.exp
	* gdb.fortran/library-module.exp
	* gdb.guile/guile.exp
	* gdb.guile/scm-cmd.exp
	* gdb.guile/scm-frame-inline.exp
	* gdb.guile/scm-objfile.exp
	* gdb.guile/scm-pretty-print.exp
	* gdb.guile/scm-symbol.exp
	* gdb.guile/scm-type.exp
	* gdb.guile/scm-value.exp
	* gdb.linespec/keywords.exp
	* gdb.linespec/ls-errs.exp
	* gdb.linespec/macro-relative.exp
	* gdb.linespec/thread.exp
	* gdb.mi/mi-breakpoint-changed.exp
	* gdb.mi/mi-dprintf-pending.exp
	* gdb.mi/mi-fullname-deleted.exp
	* gdb.mi/mi-logging.exp
	* gdb.mi/mi-pending.exp
	* gdb.mi/mi-solib.exp
	* gdb.mi/new-ui-mi-sync.exp
	* gdb.mi/user-selected-context-sync.exp
	* gdb.multi/dummy-frame-restore.exp
	* gdb.multi/multi-arch-exec.exp
	* gdb.multi/remove-inferiors.exp
	* gdb.multi/watchpoint-multi-exit.exp
	* gdb.opt/solib-intra-step.exp
	* gdb.perf/backtrace.exp
	* gdb.perf/single-step.exp
	* gdb.perf/skip-command.exp
	* gdb.perf/skip-prologue.exp
	* gdb.perf/solib.exp
	* gdb.python/lib-types.exp
	* gdb.python/py-as-string.exp
	* gdb.python/py-bad-printers.exp
	* gdb.python/py-block.exp
	* gdb.python/py-breakpoint.exp
	* gdb.python/py-cmd.exp
	* gdb.python/py-events.exp
	* gdb.python/py-evthreads.exp
	* gdb.python/py-finish-breakpoint.exp
	* gdb.python/py-finish-breakpoint2.exp
	* gdb.python/py-frame-inline.exp
	* gdb.python/py-frame.exp
	* gdb.python/py-inferior.exp
	* gdb.python/py-infthread.exp
	* gdb.python/py-mi.exp
	* gdb.python/py-objfile.exp
	* gdb.python/py-pp-maint.exp
	* gdb.python/py-pp-registration.exp
	* gdb.python/py-prettyprint.exp
	* gdb.python/py-recurse-unwind.exp
	* gdb.python/py-shared.exp
	* gdb.python/py-symbol.exp
	* gdb.python/py-symtab.exp
	* gdb.python/py-template.exp
	* gdb.python/py-type.exp
	* gdb.python/py-unwind-maint.exp
	* gdb.python/py-unwind.exp
	* gdb.python/py-value.exp
	* gdb.python/python.exp
	* gdb.reverse/finish-reverse-bkpt.exp
	* gdb.reverse/insn-reverse.exp
	* gdb.reverse/next-reverse-bkpt-over-sr.exp
	* gdb.reverse/solib-precsave.exp
	* gdb.reverse/solib-reverse.exp
	* gdb.stabs/gdb11479.exp
	* gdb.stabs/weird.exp
	* gdb.threads/fork-child-threads.exp
	* gdb.threads/fork-plus-threads.exp
	* gdb.threads/fork-thread-pending.exp
	* gdb.threads/forking-threads-plus-breakpoint.exp
	* gdb.threads/hand-call-in-threads.exp
	* gdb.threads/interrupted-hand-call.exp
	* gdb.threads/linux-dp.exp
	* gdb.threads/local-watch-wrong-thread.exp
	* gdb.threads/next-while-other-thread-longjmps.exp
	* gdb.threads/non-ldr-exit.exp
	* gdb.threads/pending-step.exp
	* gdb.threads/print-threads.exp
	* gdb.threads/process-dies-while-detaching.exp
	* gdb.threads/process-dies-while-handling-bp.exp
	* gdb.threads/pthreads.exp
	* gdb.threads/queue-signal.exp
	* gdb.threads/reconnect-signal.exp
	* gdb.threads/signal-command-handle-nopass.exp
	* gdb.threads/signal-command-multiple-signals-pending.exp
	* gdb.threads/signal-delivered-right-thread.exp
	* gdb.threads/signal-sigtrap.exp
	* gdb.threads/sigthread.exp
	* gdb.threads/staticthreads.exp
	* gdb.threads/stepi-random-signal.exp
	* gdb.threads/thread-unwindonsignal.exp
	* gdb.threads/thread_check.exp
	* gdb.threads/thread_events.exp
	* gdb.threads/tid-reuse.exp
	* gdb.threads/tls-nodebug.exp
	* gdb.threads/tls-shared.exp
	* gdb.threads/tls-so_extern.exp
	* gdb.threads/tls.exp
	* gdb.threads/wp-replication.exp
	* gdb.trace/actions-changed.exp
	* gdb.trace/actions.exp
	* gdb.trace/backtrace.exp
	* gdb.trace/change-loc.exp
	* gdb.trace/collection.exp
	* gdb.trace/deltrace.exp
	* gdb.trace/disconnected-tracing.exp
	* gdb.trace/entry-values.exp
	* gdb.trace/ftrace-lock.exp
	* gdb.trace/ftrace.exp
	* gdb.trace/infotrace.exp
	* gdb.trace/mi-trace-frame-collected.exp
	* gdb.trace/mi-trace-unavailable.exp
	* gdb.trace/mi-traceframe-changed.exp
	* gdb.trace/mi-tracepoint-changed.exp
	* gdb.trace/mi-tsv-changed.exp
	* gdb.trace/no-attach-trace.exp
	* gdb.trace/packetlen.exp
	* gdb.trace/passc-dyn.exp
	* gdb.trace/passcount.exp
	* gdb.trace/pending.exp
	* gdb.trace/pr16508.exp
	* gdb.trace/qtro.exp
	* gdb.trace/range-stepping.exp
	* gdb.trace/read-memory.exp
	* gdb.trace/report.exp
	* gdb.trace/save-trace.exp
	* gdb.trace/signal.exp
	* gdb.trace/stap-trace.exp
	* gdb.trace/status-stop.exp
	* gdb.trace/strace.exp
	* gdb.trace/tfile.exp
	* gdb.trace/tfind.exp
	* gdb.trace/trace-break.exp
	* gdb.trace/trace-condition.exp
	* gdb.trace/trace-enable-disable.exp
	* gdb.trace/trace-mt.exp
	* gdb.trace/tracecmd.exp
	* gdb.trace/tracefile-pseudo-reg.exp
	* gdb.trace/tspeed.exp
	* gdb.trace/tstatus.exp
	* gdb.trace/tsv.exp
	* gdb.trace/unavailable.exp
	* gdb.trace/while-dyn.exp
	* gdb.trace/while-stepping.exp
	* lib/gdb-guile.exp
	* lib/gdb.exp
	* lib/mi-support.exp
	* lib/pascal.exp
	* lib/perftest.exp
	* lib/prelink-support.exp
	* lib/selftest-support.exp
2016-12-01 14:40:05 -06:00
Pedro Alves 1f960ced9a Build gdb.opt/inline-*.exp tests at -O0, rely on __attribute__((always_inline))
A test recently added to gdb.opt/inline-cmds.exp fails for
arm-none-eabi targets because -O2 leads to instructions to be
reordered widely.

I guess it might have made sense years ago to enable optimization in
these tests, but I fail to see the need for that nowadays.

Using -O0 while relying on __attribute__((always_inline)), which is
already used in the tests [1] [2], avoids this sort of trouble, while
still exercising the inlining-related use cases that are the focus of
these tests.

I think that nowadays we can safely assume that all compilers we care
about support __attribute__((always_inline)) or similar.

[1] - Except one spot that missed it.

[2] - Note that the .exp files make sure the frames that should have
      been inlined are indeed inlined, with "info frame".

gdb/testsuite/ChangeLog:
2016-07-19  Pedro Alves  <palves@redhat.com>

	* gdb.opt/inline-break.exp: Remove optimize=-O2.
	* gdb.opt/inline-bt.exp: Likewise.
	* gdb.opt/inline-cmds.exp: Remove optimize=-O2 and add
	additional_flags=-Winline.
	* gdb.opt/inline-locals.exp: Likewise.
	* gdb.opt/inline-markers.c (ATTR): Define.
	(inlined_fn): Use it.
2016-07-19 17:51:05 +01:00
Pedro Alves 8980e177bb Push thread->control.command_interp to the struct thread_fsm
I noticed that if we step into an inline function, step_1 never
reaches proceed, and thus nevers sets the thread's
tp->control.command_interp.  Because of that,
should_print_stop_to_console fails to determine that is should print
stop output to the console.

The fix is to set the thread's command_interp earlier.  However, I
realized that we can move that field to the thread_fsm, given that its
lifetime is exactly the same as thread_fsm.  So the patch plumbs all
fsms constructors to take the command interp and store it in the
thread_fsm.

We can see the fix in action, with e.g., the gdb.opt/inline-cmds.exp
test, and issuing a step when stopped at line 67:

 &"s\n"
 ^running
 *running,thread-id="all"
 (gdb)
 ~"67\t  result = func2 ();\n"
 *stopped,reason="end-stepping-range",frame={addr="0x00000000004004d0",func="main",args=[],file="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.opt/inline-cmds.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.opt/inline-cmds.c",line="67"},thread-id="1",stopped-threads="all",core="0"
 (gdb)
 s
 &"s\n"
 ^running
 *running,thread-id="all"
 (gdb)
+ ~"func2 () at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.opt/inline-cmds.c:67\n"
+ ~"67\t  result = func2 ();\n"
 *stopped,reason="end-stepping-range",frame={addr="0x00000000004004d0",func="func2",args=[],file="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.opt/inline-cmds.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.opt/inline-cmds.c",line="67"},thread-id="1",stopped-threads="all",core="0"
 (gdb)

(The inline-cmds.exp command is adjusted to exercise this.)

(Due to the follow_fork change, this also fixes "next N" across a fork
with "set follow-fork child" with "set detach-on-fork on".  Commands
that rely on internal breakpoints, like "finish" will still require
more work to migrate breakpoints etc. to the child thread.)

gdb/ChangeLog:
2016-06-21  Pedro Alves  <palves@redhat.com>

	* breakpoint.c (new_until_break_fsm): Add 'cmd_interp' parameter.
	(until_break_fsm_should_stop, until_break_fsm_clean_up): Add
	thread parameter.
	(until_break_command): Pass command interpreter to thread fsm
	ctor.
	* cli/cli-interp.c (should_print_stop_to_console): Adjust.
	* gdbthread.h (struct thread_control_state) <command_interp>:
	Delete field.
	* infcall.c (new_call_thread_fsm): Add 'cmd_interp' parameter.
	Pass it down.
	(call_thread_fsm_should_stop): Add thread parameter.
	(call_function_by_hand_dummy): Pass command interpreter to thread
	fsm ctor.  Pass thread pointer to fsm clean up method.
	* infcmd.c: Include interps.h.
	(struct step_command_fsm) <thread>: Delete field.
	(new_step_command_fsm): Add 'cmd_interp' parameter.  Pass it down.
	(step_command_fsm_prepare): Remove references to fsm's thread
	field.
	(step_1): Pass command interpreter to thread
	fsm ctor.  Pass thread pointer to fsm clean up method.
	(step_command_fsm_should_stop, step_command_fsm_clean_up): Add
	thread parameter and use it.
	(new_until_next_fsm): Add 'cmd_interp' parameter.  Pass it down.
	(until_next_fsm_should_stop, until_next_fsm_clean_up): Add thread
	parameter and use it.
	(until_next_command): Pass command interpreter to thread fsm ctor.
	(struct finish_command_fsm) <thread>: Delete field.
	(finish_command_fsm_ops): Add NULL slot for should_notify_stop.
	(new_finish_command_fsm): Add 'cmd_interp' parameter and pass it
	down.  Remove thread parameter and adjust.
	(finish_command_fsm_should_stop, finish_command_fsm_clean_up): Add
	thread parameter and use it.
	(finish_command): Pass command interpreter to thread fsm ctor.
	Don't pass thread.
	* infrun.c (follow_fork): Move thread fsm to child fork instead of
	command interpreter, only.
	(clear_proceed_status_thread): Remove reference to command_interp.
	(proceed): Don't record the thread's command interpreter.
	(clean_up_just_stopped_threads_fsms): Pass thread to fsm clean_up
	method.
	(fetch_inferior_event): Pass thread to fsm should_stop method.
	* thread-fsm.c (thread_fsm_ctor): Add 'cmd_interp' parameter.
	Store it.
	(thread_fsm_clean_up, thread_fsm_should_stop): Add thread
	parameter and pass it down.
	* thread-fsm.h (struct thread_fsm) <command_interp>: New field.
	(struct thread_fsm_ops) <clean_up, should_stop>: Add thread
	parameter.
	(thread_fsm_ctor): Add 'cmd_interp' parameter.
	(thread_fsm_clean_up, thread_fsm_should_stop): Add thread
	parameter.
	* thread.c (thread_cancel_execution_command): Pass thread to
	thread fsm clean_up method.

gdb/testsuite/ChangeLog:
2016-06-21  Pedro Alves  <palves@redhat.com>

	* gdb.opt/inline-cmds.c: Add "set mi break here" marker.
	* gdb.opt/inline-cmds.exp: Add MI tests.
2016-06-21 01:11:53 +01:00
Simon Marchi d9019901f8 Rename gdb_load_shlibs to gdb_load_shlib
Rename gdb_load_shlibs to gdb_load_shlib to reflect that it can only
load a single shlib at the time.

gdb/testsuite/ChangeLog:

	* lib/gdb.exp (gdb_load_shlibs): Rename to...
	(gdb_load_shlib): ... this.
	* gdb.arch/ftrace-insn-reloc.exp: Adjust gdb_load_shlibs ->
	gdb_load_shlib.
	* gdb.base/catch-load.exp (one_catch_load_test): Likewise.
	* gdb.base/ctxobj.exp: Likewise.
	* gdb.base/dprintf-pending.exp: Likewise.
	* gdb.base/dso2dso.exp: Likewise.
	* gdb.base/fixsection.exp: Likewise.
	* gdb.base/gcore-relro.exp: Likewise.
	* gdb.base/gdb1555.exp: Likewise.
	* gdb.base/global-var-nested-by-dso.exp: Likewise.
	* gdb.base/gnu-ifunc.exp: Likewise.
	* gdb.base/hbreak-in-shr-unsupported.exp: Likewise.
	* gdb.base/jit-so.exp (one_jit_test): Likewise.
	* gdb.base/pending.exp: Likewise.
	* gdb.base/print-file-var.exp: Likewise.
	* gdb.base/print-symbol-loading.exp: Likewise.
	* gdb.base/shlib-call.exp: Likewise.
	* gdb.base/shreloc.exp: Likewise.
	* gdb.base/so-impl-ld.exp: Likewise.
	* gdb.base/solib-disc.exp: Likewise.
	* gdb.base/solib-nodir.exp: Likewise.
	* gdb.base/solib-overlap.exp: Likewise.
	* gdb.base/solib-symbol.exp: Likewise.
	* gdb.base/solib-weak.exp (do_test): Likewise.
	* gdb.base/sym-file.exp: Likewise.
	* gdb.base/symtab-search-order.exp: Likewise.
	* gdb.base/type-opaque.exp: Likewise.
	* gdb.base/unload.exp: Likewise.
	* gdb.base/watchpoint-solib.exp: Likewise.
	* gdb.compile/compile.exp: Likewise.
	* gdb.cp/gdb2384.exp: Likewise.
	* gdb.cp/infcall-dlopen.exp: Likewise.
	* gdb.cp/re-set-overloaded.exp: Likewise.
	* gdb.fortran/library-module.exp: Likewise.
	* gdb.opt/solib-intra-step.exp: Likewise.
	* gdb.python/py-finish-breakpoint.exp: Likewise.
	* gdb.python/py-shared.exp: Likewise.
	* gdb.reverse/solib-precsave.exp: Likewise.
	* gdb.reverse/solib-reverse.exp: Likewise.
	* gdb.server/solib-list.exp: Likewise.
	* gdb.threads/dlopen-libpthread.exp: Likewise.
	* gdb.threads/tls-shared.exp: Likewise.
	* gdb.threads/tls-so_extern.exp: Likewise.
	* gdb.trace/change-loc.exp: Likewise.
	* gdb.trace/ftrace-lock.exp: Likewise.
	* gdb.trace/ftrace.exp: Likewise.
	* gdb.trace/mi-tracepoint-changed.exp (test_reconnect): Likewise.
	* gdb.trace/pending.exp: Likewise.
	* gdb.trace/range-stepping.exp: Likewise.
	* gdb.trace/strace.exp (strace_remove_socket): Likewise.
	(strace_info_marker): Likewise.
	(strace_probe_marker): Likewise.
	(strace_trace_on_same_addr): Likewise.
	(strace_trace_on_diff_addr): Likewise.
	* gdb.trace/trace-break.exp: Likewise.
	* gdb.trace/trace-condition.exp: Likewise.
	* gdb.trace/trace-mt.exp: Likewise.
2016-04-27 18:09:14 -04:00
Simon Marchi 2151ccc56c Always organize test artifacts in a directory hierarchy
When running tests in parallel, each test puts its generated files in a
different directory, under "outputs".  I think it would be nice if it
was always the case, as it would isolate the test cases a bit more.  An
artifact created by a test wouldn't get overwritten by another test.

Also, it makes it easier to clean up.  A lot of executables are left all
over the place because their names do not appear in gdb.*/Makefile.  If
everything is in "outputs", then we just have to delete that directory
(which we already do).

At the same time it makes the gdb.foo directories and their Makefiles
useless in the build directory, since they are pretty much only used for
cleaning.

What do you think?

gdb/testsuite/ChangeLog:

	* Makefile.in (ALL_SUBDIRS): Remove.
	(clean mostlyclean): Do not recurse in ALL_SUBDIRS.
	(distclean maintainer-clean realclean): Likewise.
	* configure.ac (AC_OUTPUT): Remove gdb.*/Makefile.
	* configure: Regenerate.
	* gdb.ada/Makefile.in: Delete.
	* gdb.arch/Makefile.in: Likewise.
	* gdb.asm/Makefile.in: Likewise.
	* gdb.base/Makefile.in: Likewise.
	* gdb.btrace/Makefile.in: Likewise.
	* gdb.cell/Makefile.in: Likewise.
	* gdb.compile/Makefile.in: Likewise.
	* gdb.cp/Makefile.in: Likewise.
	* gdb.disasm/Makefile.in: Likewise.
	* gdb.dlang/Makefile.in: Likewise.
	* gdb.dwarf2/Makefile.in: Likewise.
	* gdb.fortran/Makefile.in: Likewise.
	* gdb.gdb/Makefile.in: Likewise.
	* gdb.go/Makefile.in: Likewise.
	* gdb.guile/Makefile.in: Likewise.
	* gdb.java/Makefile.in: Likewise.
	* gdb.linespec/Makefile.in: Likewise.
	* gdb.mi/Makefile.in: Likewise.
	* gdb.modula2/Makefile.in: Likewise.
	* gdb.multi/Makefile.in: Likewise.
	* gdb.objc/Makefile.in: Likewise.
	* gdb.opencl/Makefile.in: Likewise.
	* gdb.opt/Makefile.in: Likewise.
	* gdb.pascal/Makefile.in: Likewise.
	* gdb.perf/Makefile.in: Likewise.
	* gdb.python/Makefile.in: Likewise.
	* gdb.reverse/Makefile.in: Likewise.
	* gdb.server/Makefile.in: Likewise.
	* gdb.stabs/Makefile.in: Likewise.
	* gdb.threads/Makefile.in: Likewise.
	* gdb.trace/Makefile.in: Likewise.
	* gdb.xml/Makefile.in: Likewise.
	* lib/gdb.exp (make_gdb_parallel_path): Add check for
	GDB_PARALLEL.
	(standard_output_file): Remove check for GDB_PARALLEL, always
	return path in outputs/$subdir/$testname.
2016-02-08 14:02:36 -05:00
Joel Brobecker 618f726fcb GDB copyright headers update after running GDB's copyright.py script.
gdb/ChangeLog:

        Update year range in copyright notice of all files.
2016-01-01 08:43:22 +04:00
Jan Kratochvil 141c5cc4c4 [ppc64le] Use skip_entrypoint for skip_trampoline_code
ppc64le loses control when stepping between two PLT-called functions inside
a shared library:

29        shlib_second (); /* first-hit */^M
(gdb) PASS: gdb.base/solib-intra-step.exp: first-hit
step^M
^M
Program received signal SIGABRT, Aborted.^M
0x00003fffb7cbe578 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56^M
56        return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);^M
(gdb) FAIL: gdb.base/solib-intra-step.exp: second-hit
->
29        shlib_second (); /* first-hit */^M
(gdb) PASS: gdb.base/solib-intra-step.exp: first-hit
step^M
shlib_second () at ./gdb.base/solib-intra-step-lib.c:23^M
23        abort (); /* second-hit */^M
(gdb) PASS: gdb.base/solib-intra-step.exp: second-hit

This is because gdbarch_skip_trampoline_code() will resolve the final function
as shlib_second+0 and place there the breakpoint, but ld.so will jump after
the breakpoint - at shlib_second+8 - as it is ELFv2 local symbol optimization:

Dump of assembler code for function shlib_second:
   0x0000000000000804 <+0>:     addis   r2,r12,2
   0x0000000000000808 <+4>:     addi    r2,r2,30668
   0x000000000000080c <+8>:     mflr    r0

Currently gdbarch_skip_entrypoint() has been called in skip_prologue_sal() and
fill_in_stop_func() but that is not enough.  I believe
gdbarch_skip_entrypoint() should be called after every
gdbarch_skip_trampoline_code().

gdb/ChangeLog
2015-09-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linespec.c (minsym_found): Call gdbarch_skip_entrypoint.
	* ppc64-tdep.c (ppc64_skip_trampoline_code): Rename to ...
	(ppc64_skip_trampoline_code_1): ... here.
	(ppc64_skip_trampoline_code): New wrapper function.
	* symtab.c (find_function_start_sal): Call gdbarch_skip_entrypoint.

gdb/testsuite/ChangeLog
2015-09-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.opt/solib-intra-step-lib.c: New file.
	* gdb.opt/solib-intra-step-main.c: New file.
	* gdb.opt/solib-intra-step.exp: New file.
2015-09-15 19:08:04 +02:00
Luis Machado 4422ac93e5 Make z int
This makes z an int for gdb/testsuite/gdb.opt/inline-markers.c.

gdb/testsuite/ChangeLog:

2015-08-24  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.opt/inline-markers.c: Make z int.
2015-08-24 13:08:20 -03:00
Luis Machado 91dddb8629 Make z volatile.
This fixes a typo in gdb/testsuite/gdb.opt/inline-markers.c, making
z a volatile variable.

gdb/testsuite/ChangeLog:

2015-08-24  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.opt/inline-markers.c: Make z volatile.
2015-08-24 12:56:15 -03:00
Luis Machado a48847eea5 Prevent GCC from folding inline test functions
While doing some powerpc Linux tests on a ppc 476 board using GCC 5.2, i
noticed inline-bt.exp, inline-cmds.exp and inline-locals.exp failing.

FAIL: gdb.opt/inline-bt.exp: continue to bar (1)
FAIL: gdb.opt/inline-bt.exp: backtrace from bar (1)
FAIL: gdb.opt/inline-bt.exp: continue to bar (2)
FAIL: gdb.opt/inline-bt.exp: backtrace from bar (2)
FAIL: gdb.opt/inline-bt.exp: continue to bar (3)
FAIL: gdb.opt/inline-bt.exp: backtrace from bar (3)
FAIL: gdb.opt/inline-cmds.exp: continue to bar (1)
FAIL: gdb.opt/inline-cmds.exp: backtrace from bar (1)
FAIL: gdb.opt/inline-cmds.exp: continue to bar (2)
FAIL: gdb.opt/inline-cmds.exp: backtrace from bar (2)
FAIL: gdb.opt/inline-cmds.exp: continue to marker
FAIL: gdb.opt/inline-cmds.exp: backtrace from marker
FAIL: gdb.opt/inline-cmds.exp: step into finish marker
FAIL: gdb.opt/inline-locals.exp: continue to bar (1)
FAIL: gdb.opt/inline-locals.exp: continue to bar (2)
FAIL: gdb.opt/inline-locals.exp: backtrace from bar (2)
FAIL: gdb.opt/inline-locals.exp: continue to bar (3)
FAIL: gdb.opt/inline-locals.exp: backtrace from bar (3)

They failed because the breakpoint supposedly inserted at bar was actually
inserted at noinline.

(gdb) break inline-markers.c:20^M
Breakpoint 2 at 0x1000079c: file gdb/testsuite/gdb.opt/inline-markers.c, line 20.^M
(gdb) continue^M
Continuing.^M
^M
Breakpoint 2, noinline () at gdb/testsuite/gdb.opt/inline-markers.c:35^M
35        inlined_fn (); /* inlined */^M

As we can see, line 20 is really inside bar, not noinline:

18 void bar(void)
19 {
20   x += y; /* set breakpoint 1 here */
21 }

Further investigation shows that this is really due to GCC 5's new
ICF pass (-fipa-icf), now enabled by default at -O2, which folds bar
and marker into noinline, where the call to inlined_fn was inlined.

This breaks the testcase since it expects to stop at specific spots.

I thought about two possible fixes for this issue.

- Disable the ICF pass manually when building the binary (-fno-ipa-icf).

This has the advantage of not having to touch the testcase sources themselves,
but the disadvantage of having to add conditional blocks to test the GCC
version. If we ever change GCC's default, we will have to adjust the
conditional block again to match GCC's behavior.

- Modify the testcase sources to make the identical functions unique.

This solution doesn't touch the testcase itself, but changes the source
code slightly in order to make bar, marker and inlined_fn unique. This
causes GCC's ICF pass to ignore these functions and not fold them into
a common identical function.

I'm good with either of them, but i'm more inclined to go with the second
one.

The attached patch implements this by adding the new global variable z, set
to 0, that gets added in different ways to marker and inlined_fn. Since it
is 0, it doesn't affect any possible value checks that we may wish to do
in the future (we currently only check for values changed by bar).

Ok?

ps: I also noticed GDB doesn't do a great job at stating that the breakpoint
was actually inserted at a different source line than previously requested,
so this sounds like a bug that should be fixed, if it is not just wrong
DWARF information (did not investigate it further).

gdb/testsuite/ChangeLog:

2015-08-24  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.opt/inline-bt.c: New volatile global z.
	* gdb.opt/inline-cmds.c: Likewise.
	* gdb.opt/inline-locals.c: Likewise.
	* gdb.opt/inline-markers.c: New extern global z.
	(marker): Use z.
	(inline_fn): Likewise.
2015-08-24 12:33:21 -03:00
Joel Brobecker 32d0add0a6 Update year range in copyright notice of all files owned by the GDB project.
gdb/ChangeLog:

        Update year range in copyright notice of all files.
2015-01-01 13:32:14 +04:00
David Blaikie 522c09bf63 Use attribute to specify the required inlining semantics
As suggested by Andrew Pinski.

gdb/testsuite/
	* gdb.opt/inline-break.c: Fix clang compatibility by specifying
	gnu_inline semantics via attribute.
	* gdb.opt/inline-break.exp: Remove -std=c89 now that the test
	source explicitly specifies the required semantics.
2014-05-30 12:20:50 +01:00
Pedro Alves 51d481464e Fix PR backtrace/15558
This PR is about an assertion failure in GDB that can be triggered by
setting "backtrace limit" to a value that causes GDB to stop unwinding
after an inline frame.  In this case, an assertion in
inline_frame_this_id will trigger:

  /* We need a valid frame ID, so we need to be based on a valid
     frame.  (...).  */
  gdb_assert (frame_id_p (*this_id));

Looking at the function:

 static void
 inline_frame_this_id (struct frame_info *this_frame,
		       void **this_cache,
		       struct frame_id *this_id)
 {
   struct symbol *func;

   /* In order to have a stable frame ID for a given inline function,
      we must get the stack / special addresses from the underlying
      real frame's this_id method.  So we must call get_prev_frame.
      Because we are inlined into some function, there must be previous
      frames, so this is safe - as long as we're careful not to
      create any cycles.  */
   *this_id = get_frame_id (get_prev_frame (this_frame));

we see we're computing the frame id for the inline frame.  If this is
an inline frame, which is a virtual frame constructed based on debug
info, on top of a real stack frame, we should _always_ be able to find
where the frame was inlined into, as that ultimately just means
peeling off the virtual frames on top of the real stack frame.  If
there ultimately was no prev (real) stack frame, then we wouldn't have
been able to construct the inline frame either, by design.  That's
what the assertion catches.

So we have an inline frame, we should _always_ be able to compute its
ID, even if that means bypassing the user backtrace limits to get at
the real stack frame's info.  The problem is that inline_frame_id
calls get_prev_frame, and that takes user backtrace limits into
account.  Code that wants to bypass the limits calls get_prev_frame_1
instead.

Note how get_prev_frame_1 already skips all checks for inline frames:

   /* If we are unwinding from an inline frame, all of the below tests
      were already performed when we unwound from the next non-inline
      frame.  We must skip them, since we can not get THIS_FRAME's ID
      until we have unwound all the way down to the previous non-inline
      frame.  */
   if (get_frame_type (this_frame) == INLINE_FRAME)
     return get_prev_frame_if_no_cycle (this_frame);

And note how the related frame_unwind_caller_id function also uses
get_prev_frame_1:

 struct frame_id
 frame_unwind_caller_id (struct frame_info *next_frame)
 {
   struct frame_info *this_frame;

   /* Use get_prev_frame_1, and not get_prev_frame.  The latter will truncate
      the frame chain, leading to this function unintentionally
      returning a null_frame_id (e.g., when a caller requests the frame
      ID of "main()"s caller.  */

   next_frame = skip_artificial_frames (next_frame);
   this_frame = get_prev_frame_1 (next_frame);
   if (this_frame)
     return get_frame_id (skip_artificial_frames (this_frame));
   else
     return null_frame_id;
 }

get_prev_frame_1 is currently static in frame.c.  As a _1 suffix is
not a good name for an extern function, I've renamed it.

Tested on x86-64 Fedora 17.

gdb/
2014-04-18  Pedro alves  <palves@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	PR backtrace/15558
	* frame.c (get_prev_frame_1): Rename to ...
	(get_prev_frame_always): ... this, and make extern.  Adjust.
	(skip_artificial_frames): Use get_prev_frame_always.
	(frame_unwind_caller_id, frame_pop, get_prev_frame)
	(get_frame_unwind_stop_reason): Adjust to rename.
	* frame.h (get_prev_frame_always): Declare.
	* inline-frame.c: Include frame.h.
	(inline_frame_this_id): Use get_prev_frame_always.

gdb/testsuite/
2014-04-18  Tom Tromey  <palves@redhat.com>
	    Pedro alves  <tromey@redhat.com>

	PR backtrace/15558
	* gdb.opt/inline-bt.exp: Test backtracing from an inline function
	with a backtrace limit.
	* gdb.python/py-frame-inline.exp: Test running to an inline
	function with a backtrace limit, and printing the newest frame.
	* gdb.python/py-frame-inline.c (main): Call f.
2014-04-18 10:34:09 +01:00
David Blaikie f180a1fb46 Compile inline test with -std=gnu89 explicitly to override Clang's default (-std=c99)
gdb/testsuite/
	* gdb.opt/inline-break.exp: Explicitly specify -std=gnu89 to
	override Clang's default.
2014-04-11 17:26:23 -07:00
Joel Brobecker ecd75fc8ee Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
Joel Brobecker 8acc9f485b Update years in copyright notice for the GDB files.
Two modifications:
  1. The addition of 2013 to the copyright year range for every file;
  2. The use of a single year range, instead of potentially multiple
     year ranges, as approved by the FSF.
2013-01-01 06:41:43 +00:00
Tom Tromey efc9d70a28 * gdb.opt/clobbered-registers-O2.exp: Use standard_testfile,
prepare_for_testing.
	* gdb.opt/inline-break.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.opt/inline-bt.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.opt/inline-cmds.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.opt/inline-locals.exp: Use standard_testfile,
	prepare_for_testing.
2012-06-25 20:24:57 +00:00
Tom Tromey 4c93b1dbf4 * lib/gdb.exp (skip_altivec_tests, skip_vsx_tests)
(build_executable): Update.
	(get_compiler_info): Remove 'binfile' argument.
	* gdb.ada/arrayidx.exp: Update.
	* gdb.ada/null_array.exp: Update.
	* gdb.arch/altivec-abi.exp: Update.
	* gdb.arch/altivec-regs.exp: Update.
	* gdb.arch/amd64-byte.exp: Update.
	* gdb.arch/amd64-dword.exp: Update.
	* gdb.arch/amd64-word.exp: Update.
	* gdb.arch/i386-avx.exp: Update.
	* gdb.arch/i386-byte.exp: Update.
	* gdb.arch/i386-sse.exp: Update.
	* gdb.arch/i386-word.exp: Update.
	* gdb.arch/ppc-dfp.exp: Update.
	* gdb.arch/ppc-fp.exp: Update.
	* gdb.arch/vsx-regs.exp: Update.
	* gdb.base/all-bin.exp: Update.
	* gdb.base/annota1.exp: Update.
	* gdb.base/async.exp: Update.
	* gdb.base/attach.exp: Update.
	* gdb.base/break-interp.exp: Update.
	* gdb.base/call-ar-st.exp: Update.
	* gdb.base/call-rt-st.exp: Update.
	* gdb.base/call-sc.exp: Update.
	* gdb.base/callfuncs.exp: Update.
	* gdb.base/catch-load.exp: Update.
	* gdb.base/completion.exp: Update.
	* gdb.base/complex.exp: Update.
	* gdb.base/condbreak.exp: Update.
	* gdb.base/consecutive.exp: Update.
	* gdb.base/constvars.exp: Update.
	* gdb.base/corefile.exp: Update.
	* gdb.base/eval-skip.exp: Update.
	* gdb.base/expand-psymtabs.exp: Update.
	* gdb.base/exprs.exp: Update.
	* gdb.base/fileio.exp: Update.
	* gdb.base/fixsection.exp: Update.
	* gdb.base/funcargs.exp: Update.
	* gdb.base/gdb11530.exp: Update.
	* gdb.base/gdb1555.exp: Update.
	* gdb.base/gnu-ifunc.exp: Update.
	* gdb.base/gnu_vector.exp: Update.
	* gdb.base/info-macros.exp: Update.
	* gdb.base/jit-simple.exp: Update.
	* gdb.base/jit-so.exp: Update.
	* gdb.base/jit.exp: Update.
	* gdb.base/langs.exp: Update.
	* gdb.base/list.exp: Update.
	* gdb.base/logical.exp: Update.
	* gdb.base/long_long.exp: Update.
	* gdb.base/longjmp.exp: Update.
	* gdb.base/macscp.exp: Update.
	* gdb.base/mips_pro.exp: Update.
	* gdb.base/miscexprs.exp: Update.
	* gdb.base/morestack.exp: Update.
	* gdb.base/nodebug.exp: Update.
	* gdb.base/opaque.exp: Update.
	* gdb.base/pc-fp.exp: Update.
	* gdb.base/pending.exp: Update.
	* gdb.base/permissions.exp: Update.
	* gdb.base/pointers.exp: Update.
	* gdb.base/prelink.exp: Update.
	* gdb.base/printcmds.exp: Update.
	* gdb.base/psymtab.exp: Update.
	* gdb.base/ptype.exp: Update.
	* gdb.base/relational.exp: Update.
	* gdb.base/scope.exp: Update.
	* gdb.base/setvar.exp: Update.
	* gdb.base/shlib-call.exp: Update.
	* gdb.base/shreloc.exp: Update.
	* gdb.base/signals.exp: Update.
	* gdb.base/sizeof.exp: Update.
	* gdb.base/so-impl-ld.exp: Update.
	* gdb.base/so-indr-cl.exp: Update.
	* gdb.base/solib-disc.exp: Update.
	* gdb.base/solib-display.exp: Update.
	* gdb.base/solib-nodir.exp: Update.
	* gdb.base/solib-overlap.exp: Update.
	* gdb.base/solib-symbol.exp: Update.
	* gdb.base/solib-weak.exp: Update.
	* gdb.base/solib.exp: Update.
	* gdb.base/store.exp: Update.
	* gdb.base/structs.exp: Update.
	* gdb.base/structs2.exp: Update.
	* gdb.base/type-opaque.exp: Update.
	* gdb.base/unload.exp: Update.
	* gdb.base/varargs.exp: Update.
	* gdb.base/volatile.exp: Update.
	* gdb.base/watch_thread_num.exp: Update.
	* gdb.base/watchpoint-solib.exp: Update.
	* gdb.base/watchpoint.exp: Update.
	* gdb.base/watchpoints.exp: Update.
	* gdb.base/whatis.exp: Update.
	* gdb.cell/arch.exp: Update.
	* gdb.cell/break.exp: Update.
	* gdb.cell/bt.exp: Update.
	* gdb.cell/core.exp: Update.
	* gdb.cell/data.exp: Update.
	* gdb.cell/ea-cache.exp: Update.
	* gdb.cell/f-regs.exp: Update.
	* gdb.cell/fork.exp: Update.
	* gdb.cell/gcore.exp: Update.
	* gdb.cell/mem-access.exp: Update.
	* gdb.cell/ptype.exp: Update.
	* gdb.cell/registers.exp: Update.
	* gdb.cell/sizeof.exp: Update.
	* gdb.cell/solib-symbol.exp: Update.
	* gdb.cell/solib.exp: Update.
	* gdb.cp/ambiguous.exp: Update.
	* gdb.cp/breakpoint.exp: Update.
	* gdb.cp/bs15503.exp: Update.
	* gdb.cp/casts.exp: Update.
	* gdb.cp/class2.exp: Update.
	* gdb.cp/cpexprs.exp: Update.
	* gdb.cp/cplusfuncs.exp: Update.
	* gdb.cp/ctti.exp: Update.
	* gdb.cp/dispcxx.exp: Update.
	* gdb.cp/gdb1355.exp: Update.
	* gdb.cp/gdb2384.exp: Update.
	* gdb.cp/gdb2495.exp: Update.
	* gdb.cp/infcall-dlopen.exp: Update.
	* gdb.cp/local.exp: Update.
	* gdb.cp/m-data.exp: Update.
	* gdb.cp/m-static.exp: Update.
	* gdb.cp/mb-ctor.exp: Update.
	* gdb.cp/mb-inline.exp: Update.
	* gdb.cp/mb-templates.exp: Update.
	* gdb.cp/member-ptr.exp: Update.
	* gdb.cp/method.exp: Update.
	* gdb.cp/namespace.exp: Update.
	* gdb.cp/nextoverthrow.exp: Update.
	* gdb.cp/nsdecl.exp: Update.
	* gdb.cp/nsrecurs.exp: Update.
	* gdb.cp/nsstress.exp: Update.
	* gdb.cp/nsusing.exp: Update.
	* gdb.cp/pr-1023.exp: Update.
	* gdb.cp/pr-1210.exp: Update.
	* gdb.cp/pr-574.exp: Update.
	* gdb.cp/pr9631.exp: Update.
	* gdb.cp/printmethod.exp: Update.
	* gdb.cp/psmang.exp: Update.
	* gdb.cp/re-set-overloaded.exp: Update.
	* gdb.cp/rtti.exp: Update.
	* gdb.cp/shadow.exp: Update.
	* gdb.cp/templates.exp: Update.
	* gdb.cp/try_catch.exp: Update.
	* gdb.dwarf2/dw2-ranges.exp: Update.
	* gdb.dwarf2/pr10770.exp: Update.
	* gdb.fortran/library-module.exp: Update.
	* gdb.hp/gdb.aCC/optimize.exp: Update.
	* gdb.hp/gdb.aCC/watch-cmd.exp: Update.
	* gdb.hp/gdb.base-hp/callfwmall.exp: Update.
	* gdb.hp/gdb.base-hp/hwwatchbus.exp: Update.
	* gdb.hp/gdb.base-hp/pxdb.exp: Update.
	* gdb.hp/gdb.base-hp/sized-enum.exp: Update.
	* gdb.hp/gdb.base-hp/so-thresh.exp: Update.
	* gdb.hp/gdb.compat/xdb1.exp: Update.
	* gdb.hp/gdb.compat/xdb2.exp: Update.
	* gdb.hp/gdb.compat/xdb3.exp: Update.
	* gdb.hp/gdb.defects/bs14602.exp: Update.
	* gdb.hp/gdb.defects/solib-d.exp: Update.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Update.
	* gdb.hp/gdb.objdbg/objdbg02.exp: Update.
	* gdb.hp/gdb.objdbg/objdbg03.exp: Update.
	* gdb.hp/gdb.objdbg/objdbg04.exp: Update.
	* gdb.mi/gdb792.exp: Update.
	* gdb.mi/mi-pending.exp: Update.
	* gdb.mi/mi-solib.exp: Update.
	* gdb.mi/mi-var-cp.exp: Update.
	* gdb.opt/clobbered-registers-O2.exp: Update.
	* gdb.opt/inline-bt.exp: Update.
	* gdb.opt/inline-cmds.exp: Update.
	* gdb.opt/inline-locals.exp: Update.
	* gdb.python/py-events.exp: Update.
	* gdb.python/py-finish-breakpoint.exp: Update.
	* gdb.python/py-type.exp: Update.
	* gdb.reverse/solib-precsave.exp: Update.
	* gdb.reverse/solib-reverse.exp: Update.
	* gdb.server/solib-list.exp: Update.
	* gdb.stabs/weird.exp: Update.
	* gdb.threads/attach-into-signal.exp: Update.
	* gdb.threads/attach-stopped.exp: Update.
	* gdb.threads/tls-shared.exp: Update.
	* gdb.trace/change-loc.exp: Update.
	* gdb.trace/strace.exp: Update.
2012-06-21 20:46:25 +00:00
Doug Evans 957df313b7 * Makefile.in (clean): Remove Fission .dwo and .dwp files.
* gdb.ada/Makefile.in (clean): Ditto.
	* gdb.arch/Makefile.in (clean): Ditto.
	* gdb.asm/Makefile.in (clean): Ditto.
	* gdb.base/Makefile.in (clean): Ditto.
	* gdb.cell/Makefile.in (clean): Ditto.
	* gdb.cp/Makefile.in (clean): Ditto.
	* gdb.disasm/Makefile.in (clean): Ditto.
	* gdb.dwarf2/Makefile.in (clean): Ditto.
	* gdb.fortran/Makefile.in (clean): Ditto.
	* gdb.go/Makefile.in (clean): Ditto.
	* gdb.hp/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.aCC/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.base-hp/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.compat/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.defects/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.objdbg/Makefile.in (clean): Ditto.
	* gdb.java/Makefile.in (clean): Ditto.
	* gdb.linespec/Makefile.in (clean): Ditto.
	* gdb.mi/Makefile.in (clean): Ditto.
	* gdb.modula2/Makefile.in (clean): Ditto.
	* gdb.multi/Makefile.in (clean): Ditto.
	* gdb.objc/Makefile.in (clean): Ditto.
	* gdb.opencl/Makefile.in (clean): Ditto.
	* gdb.opt/Makefile.in (clean): Ditto.
	* gdb.pascal/Makefile.in (clean): Ditto.
	* gdb.python/Makefile.in (clean): Ditto.
	* gdb.reverse/Makefile.in (clean): Ditto.
	* gdb.server/Makefile.in (clean): Ditto.
	* gdb.stabs/Makefile.in (clean): Ditto.
	* gdb.threads/Makefile.in (clean): Ditto.
	* gdb.trace/Makefile.in (clean): Ditto.
	* gdb.xml/Makefile.in (clean): Ditto.
2012-05-17 19:03:59 +00:00
Gary Benson 481860b396 gdb:
PR breakpoints/10738
	* dwarf2read.c (use_deprecated_index_sections): New global.
	(struct partial_die_info): New member may_be_inlined.
	(read_partial_die): Set may_be_inlined where appropriate.
	(add_partial_subprogram): Add partial symbols for partial
	DIEs that may be inlined.
	(new_symbol_full): Add inlined subroutines to the current
	scope.
	(write_psymtabs_to_index): Bump version number.
	(dwarf2_read_index): Read only version 6 indices unless
	use_deprecated_index_sections is set.
	* linespec.c (symbol_and_data_callback): New structure.
	(iterate_inline_only): New function.
	(iterate_over_all_matching_symtabs): New argument
	"include_inline".  If nonzero, also call the callback for
	symbols representing inlined subroutines.
	(lookup_prefix_sym): Pass extra argument to the above.
	(find_function_symbols): Likewise.
	(add_matching_symbols_to_info): Likewise.
	* NEWS: Mention that GDB can now set breakpoints on inlined
	functions.

gdb/doc:
	PR breakpoints/10738
	* gdb.texinfo (Inline Functions): Remove the now-unnecessary @item
	stating that GDB cannot set breakpoints on inlined functions.
	(Mode Options): Document --use-deprecated-index-sections.
	(Index Section Format): Document new index section version format.

gdb/testsuite:
	PR breakpoints/10738
	* gdb.opt/inline-break.exp: New file.
	* gdb.opt/inline-break.c: Likewise.
	* gdb.dwarf2/inline-break.exp: Likewise.
	* gdb.dwarf2/inline-break.S: Likewise.
	* gdb.base/annota1.exp: Cope with old .gdb_index warnings.
	* gdb.base/async-shell.exp: Likewise.
	* lib/mi-support.exp (library_loaded_re): Likewise.
2012-03-16 16:47:34 +00:00
Pedro Alves 97ccebe869 2012-01-16 Pedro Alves <palves@redhat.com>
Remove all calls to strace.
2012-01-16 16:21:53 +00:00
Joel Brobecker 0b30217134 Copyright year update in most files of the GDB Project.
gdb/ChangeLog:

        Copyright year update in most files of the GDB Project.
2012-01-04 08:17:56 +00:00
Edjunior Barbosa Machado b4cbb4a365 * gdb.opt/inline-cmds.exp: Adjust checks with "finish" command to
accept to show the caller line again as well as the line after.
2011-05-02 17:07:10 +00:00
Michael Snyder 1d41d745ca 2011-02-22 Michael Snyder <msnyder@vmware.com>
* Makefile.in: Make more clean.
	* gdb.ada/Makefile.in: Ditto.
	* gdb.arch/Makefile.in: Ditto.
	* gdb.asm/Makefile.in: Ditto.
	* gdb.base/Makefile.in: Ditto.
	* gdb.cp/Makefile.in: Ditto.
	* gdb.dwarf2/Makefile.in: Ditto.
	* gdb.java/Makefile.in: Ditto.
	* gdb.mi/Makefile.in: Ditto.
	* gdb.modula2/Makefile.in: Ditto.
	* gdb.python/Makefile.in: Ditto.
	* gdb.server/Makefile.in: Ditto.
	* gdb.stabs/Makefile.in: Ditto.
	* gdb.threads/Makefile.in: Ditto.
	* gdb.trace/Makefile.in: Ditto.
2011-02-22 20:52:49 +00:00
Pedro Alves 585fdaa106 Centralize printing "<optimized out>".
gdb/
	* valprint.h (val_print_optimized_out): Declare.
	* cp-valprint.c (cp_print_value_fields): Use
	val_print_optimized_out.
	* jv-valprint.c (java_print_value_fields): Ditto.
	* p-valprint.c (pascal_object_print_value_fields): Ditto.
	* printcmd.c (print_formatted): Ditto.
	* valprint.c (valprint_check_validity): Ditto.
	(value_check_printable): Ditto.
	(val_print_optimized_out): New.

	gdb/doc/
	* gdb.texinfo: s/value optimized out/optimized out/g

	gdb/testsuite/
	* gdb.base/frame-args.exp: Adjust.
	* gdb.dwarf2/dw2-noloc.exp: Adjust.
	* gdb.dwarf2/dw2-inline-param.exp: Adjust.
	* gdb.dwarf2/pieces.exp: Adjust.
	* gdb.opt/clobbered-registers-O2.exp: Adjust.
	* gdb.opt/inline-locals.exp: Adjust.
	* gdb.threads/fork-child-threads.exp: Adjust.
2011-01-25 16:26:23 +00:00
Joel Brobecker 7b6bb8daac run copyright.sh for 2011. 2011-01-01 15:34:07 +00:00
Tom Tromey 5283e9e1e3 * gdb.opt/inline-cmds.c (ATTR): New define.
(func1): Use it.
	(func2): Likewise.
	(func3): Likewise.
	(outer_inline1): Likewise.
	(outer_inline2): Likewise.
	* gdb.opt/inline-bt.c (ATTR): New define.
	(func1): Use it.
	(func2): Likewise.
	* gdb.opt/inline-locals.c (ATTR): New define.
	(func1): Use it.
	(func2): Likewise.
2010-07-27 18:08:48 +00:00
Michael Snyder 019ebafccd 2010-06-02 Michael Snyder <msnyder@vmware.com>
* gdb.dwarf2/dw2-basic.exp: Use gdb_test_no_output.
	* gdb.dwarf2/dw2-compressed.exp: Ditto.
	* gdb.dwarf2/dw2-intercu.exp: Ditto.
	* gdb.dwarf2/dw2-intermix.exp: Ditto.
	* gdb.dwarf2/dw2-producer.exp: Ditto.
	* gdb.dwarf2/mac-fileno.exp: Ditto.

	* gdb.gdb/observer.exp: Use gdb_test_no_output.
	* gdb.gdb/selftest.exp: Ditto.

	* gdb.multi/base.exp: Use gdb_test_no_output.

	* gdb.opt/inline-cmds.exp: Use gdb_test_no_output.
2010-06-02 21:46:45 +00:00
Joel Brobecker 4c38e0a4fc Update copyright year in most headers.
Automatic update by copyright.sh.
2010-01-01 07:32:07 +00:00
Daniel Jacobowitz c38f313db7 * dwarf2read.c (inherit_abstract_dies): Work around GCC PR 40573.
testsuite/
	* gdb.opt/inline-locals.exp: Remove XFAIL with duplicated arg1.
2009-06-30 15:50:27 +00:00
Daniel Jacobowitz edb3359dff gdb/
* NEWS: Document inlined function support.
	* Makefile.in (SFILES): Add inline-frame.c.
	(COMMON_OBS): Add inline-frame.o.
	* block.c (contained_in): Rewrite to use lexical nesting.
	(block_linkage_function): Skip inlined function blocks.
	(block_inlined_p): New.
	* block.h (struct block): Update comment.
	(block_inlined_p): New prototype.
	* blockframe.c (get_frame_block): Handle inlined functions.
	(get_frame_function): Do not use block_linkage_function.
	(block_innermost_frame): Use get_frame_block and contained_in.
	* breakpoint.c (watchpoint_check): Remove extra reinit_frame_cache.
	Skip over inlined functions.  Simplify epilogue check.
	(bpstat_check_breakpoint_conditions): Use get_stack_frame_id.
	Update comments.
	(set_momentary_breakpoint): Only accept non-inlined frames.
	(watch_command_1): Use frame_unwind_caller_pc and
	frame_unwind_caller_id instead of get_prev_frame.
	(until_break_command): Likewise.  Use get_stack_frame_id.
	* buildsym.c (end_symtab): Set SYMBOL_SYMTAB for block functions.
	* dwarf2loc.c (dwarf_expr_frame_base): Use block_linkage_function.
	* dwarf2read.c (process_die): Handle DW_TAG_inlined_subroutine.
	(read_func_scope, new_symbol): Likewise.  Handle arguments specially
	for inlined functions without call site information.
	(inherit_abstract_dies): Allow tag mismatch for inlined subroutines.
	(die_specification): Treat DW_AT_abstract_origin as a specification.
	(read_type_die): Handle DW_TAG_inlined_subroutine.
	* frame-unwind.c (frame_unwind_init): Add inline_frame_unwind.
	* frame.c (fprint_frame_id): Print inline depth.
	(fprint_frame_type): Handle INLINE_FRAME and SENTINEL_FRAME.
	(skip_inlined_frames, get_stack_frame_id): New.
	(frame_unwind_caller_id): Use skip_inlined_frames.
	(frame_id_inlined_p): New.
	(frame_id_eq): Make the logic match the comments.  Add inline_depth
	check.
	(frame_id_inner): Handle inlined functions.
	(frame_unwind_pc): New function, copied from frame_unwind_caller_pc.
	(frame_unwind_caller_pc): Use skip_inlined_frames and frame_unwind_pc.
	(get_prev_frame_1): Check for inline frames.  Split out frame
	allocation to get_prev_frame_raw.
	(get_prev_frame_raw): New function.
	(get_prev_frame): Handle inline frames.
	(get_frame_pc): Use frame_unwind_pc.
	(get_frame_address_in_block): Skip inlined frames on both sides.
	(pc_notcurrent): Delete.
	(find_frame_sal): Rewrite to handle inline call sites.  Use
	get_frame_address_in_block.
	(deprecated_update_frame_pc_hack): Make static.
	* frame.h: Update comments.
	(struct frame_id): Add inline_depth.
	(enum frame_type): Add INLINE_FRAME.
	(frame_id_inlined_p, get_stack_frame_id): New prototypes.
	* gdbthread.h (struct thread_info): Add step_stack_frame_id field.
	* infcmd.c (set_step_frame): New function.
	(step_once): Use set_step_frame.  Handle inlined functions.
	(until_next_command): Use set_step_frame.
	(finish_backward), finish_forward): Use get_stack_frame_id.
	(finish_command): Support inlined functions.
	* inferior.h (set_step_info): New prototype.
	* infrun.c (RESUME_ALL): Use minus_one_ptid.
	(clear_proceed_status): Clear step_stack_frame_id.
	(init_wait_for_inferior): Call clear_inline_frame_state.
	(init_execution_control_state): Make static.
	(set_step_info): New function.
	(init_thread_stepping_state): Do not set the symtab or line here.
	(stepped_in_from): New function.
	(handle_inferior_event): Handle inlined functions.  Use set_step_info.
	(insert_step_resume_breakpoint_at_frame): Use get_stack_frame_id.
	(struct inferior_status): Add step_stack_frame_id.
	(save_inferior_status, restore_inferior_status): Save and restore
	step_stack_frame_id.
	* inline-frame.c, inline-frame.h: New files.
	* minsyms.c (prim_record_minimal_symbol_and_info): Use XCALLOC.
	* regcache.c (regcache_write_pc): Call reinit_frame_cache.
	* s390-tdep.c (s390_prologue_frame_unwind_cache): Handle INLINE_FRAME.
	* stack.c (frame_show_address): New.
	(print_frame_info, print_frame): Use it.
	(find_frame_funname): Use get_frame_function.  Handle inlined blocks.
	(frame_info): Mark inlined functions.
	(backtrace_command_1): Use get_current_user_frame.
	(print_frame_local_vars, print_frame_label_vars): Update comments.
	(return_command): Refuse inlined functions.
	* symtab.c (lookup_symbol_aux_local): Stop at inlined function
	boundaries.
	(find_function_start_sal): Avoid inlined functions.
	(completion_list_add_fields): New function.
	(default_make_symbol_completion_list): Use it.  Use block_static_block
	and block_global_block.  Check for inlined functions.
	(skip_prologue_using_sal): Avoid line number comparison across
	inlining.
	* symtab.h (struct symbol): Add is_inlined.
	(SYMBOL_INLINED): New.
	* target.c (target_resume): Call clear_inline_frame_state.
	* valops.c (value_of_variable): Check block_inlined_p.

	gdb/doc/
	* gdb.texinfo (Debugging Optimized Code): New chapter.
	(Compiling for Debugging): Reference it.  Move some
	text to the new section.

	gdb/testsuite/
	* gdb.base/break.exp: Add an XFAIL for gcc/36748.
	* gdb.cp/annota2.exp: Accept frames-invalid in more places.
	* gdb.opt/Makefile.in (EXECUTABLES): Update.
	* gdb.opt/clobbered-registers-O2.exp: Update to GPL v3.
	* gdb.opt/inline-bt.c, gdb.opt/inline-bt.exp,
	gdb.opt/inline-cmds.c, gdb.opt/inline-cmds.exp,
	gdb.opt/inline-locals.c, gdb.opt/inline-locals.exp,
	gdb.opt/inline-markers.c: New files.
	* lib/gdb.exp (skip_inline_frame_tests): New function.
	(skip_inline_var_tests): New function.
2009-06-28 00:20:24 +00:00
Joel Brobecker 0fb0cc7590 Updated copyright notices for most files. 2009-01-03 05:58:08 +00:00
Doug Evans 66d0bbc7b8 * gdb.opt/Makefile.in: Fix whitespace. 2008-04-17 23:06:54 +00:00
Daniel Jacobowitz 9b254dd1ce Updated copyright notices for most files. 2008-01-01 22:53:26 +00:00
Luis Machado 5876dc880e * gdb.opt/clobbered-registers-O2.c: New testcase source file.
* gdb.opt/clobbered-registers-O2.exp: New testcase expect file.
        * gdb.opt/Makefile.in: New makefile.
        * Makefile.in: Create new directory "gdb.opt".
        * configure.ac: Add "gdb.opt" directory.
        * configure: Regenerated.
2007-10-25 20:30:26 +00:00