Commit Graph

297 Commits

Author SHA1 Message Date
Luis Machado bb95117e10 Fix test names starting with uppercase using multi-line gdb_test/mi_gdb_test
This fixes offender testcases that have test names starting with uppercase
when using gdb_test/mi_gdb_test in a multi-line construct.

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

	Fix test names starting with uppercase throughout the files.

	* gdb.ada/array_return.exp
	* gdb.ada/expr_delims.exp
	* gdb.ada/mi_dyn_arr.exp
	* gdb.ada/mi_interface.exp
	* gdb.ada/mi_var_array.exp
	* gdb.ada/watch_arg.exp
	* gdb.arch/alpha-step.exp
	* gdb.arch/altivec-regs.exp
	* gdb.arch/e500-regs.exp
	* gdb.arch/powerpc-d128-regs.exp
	* gdb.base/arrayidx.exp
	* gdb.base/break.exp
	* gdb.base/checkpoint.exp
	* gdb.base/debug-expr.exp
	* gdb.base/dmsym.exp
	* gdb.base/radix.exp
	* gdb.base/sepdebug.exp
	* gdb.base/testenv.exp
	* gdb.base/watch_thread_num.exp
	* gdb.base/watchpoint-cond-gone.exp
	* gdb.cell/break.exp
	* gdb.cell/ea-cache.exp
	* gdb.compile/compile.exp
	* gdb.cp/gdb2495.exp
	* gdb.gdb/selftest.exp
	* gdb.gdb/xfullpath.exp
	* gdb.go/hello.exp
	* gdb.go/integers.exp
	* gdb.objc/basicclass.exp
	* gdb.pascal/hello.exp
	* gdb.pascal/integers.exp
	* gdb.python/py-breakpoint.exp
	* gdb.python/py-cmd.exp
	* gdb.python/py-linetable.exp
	* gdb.python/py-xmethods.exp
	* gdb.python/python.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.threads/leader-exit.exp
	* gdb.threads/pthreads.exp
	* gdb.threads/wp-replication.exp
	* gdb.trace/actions.exp
	* gdb.trace/mi-tsv-changed.exp
	* gdb.trace/tsv.exp
2016-12-01 14:44:38 -06:00
Luis Machado de97fdd4a0 Fix test names starting with uppercase using gdb_test_multiple
This fixes offender testcases that have test names starting with uppercase
when using gdb_test_multiple 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-bp_permanent.exp
	* gdb.arch/i386-gnu-cfi.exp
	* gdb.base/disasm-end-cu.exp
	* gdb.base/macscp.exp
	* gdb.base/pending.exp
	* gdb.base/watch_thread_num.exp
	* gdb.cp/exception.exp
	* gdb.cp/gdb2495.exp
	* gdb.cp/local.exp
	* gdb.python/py-evsignal.exp
	* gdb.python/python.exp
	* gdb.trace/tracecmd.exp
2016-12-01 14:43:42 -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
Jan Kratochvil 8f1a8fc4df testsuite: Fix gdb.arch/powerpc-prologue.c compilation
gcc-6.2.1

gdb compile failed, gdb/testsuite/gdb.arch/powerpc-prologue.c: In function 'main':
gdb/testsuite/gdb.arch/powerpc-prologue.c:32:3: warning: implicit declaration of function 'optimized_1' [-Wimplicit-function-declaration]
   optimized_1 ();
   ^~~~~~~~~~~

gdb/testsuite/ChangeLog
2016-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/powerpc-prologue.c (optimized_1): New declaration.
2016-10-11 19:09:05 +02:00
Jan Kratochvil 16c85b5d14 testsuite: Use standard_output_file
gdb/testsuite/ChangeLog
2016-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/powerpc-prologue.exp: Use standard_output_file.
	* gdb.arch/ppc64-symtab-cordic.exp: Likewise.
	* gdb.arch/vsx-regs.exp: Likewise.
2016-10-11 16:43:58 +02:00
Maciej W. Rozycki 78b86327b5 mips-tdep: Make FCRs always 32-bit
Fix a regression from commit f8b73d13b7 ("Target-described register
support for MIPS"),
<https://sourceware.org/ml/gdb-patches/2007-05/msg00340.html>,
<https://sourceware.org/ml/gdb-patches/2007-06/msg00256.html>, which
caused Floating Point Control Registers (FCRs) to be shown as 64-bit
with 64-bit targets.

This came from the legacy register format where all raw registers
matched the width of the architecture regardless of their actual size.
The correct size was then set in `mips_register_type' for cooked
registers presented to the user, which in the case of FCRs meant the
cooked size was always forced to 32 bits, reflecting their actual
hardware size, even though the raw format carried them in 64-bit
quantities on 64-bit targets.  The upper 32 bits carried in the raw FCR
format have always been don't-cares, not actually retrieved from
hardware and never written back.

With the introduction of XML register descriptions the layout of
previously defined raw registers has been preserved, so as to keep
existing register handling code unchanged and make it easier for GDB and
`gdbserver' to interact with each other whether neither, either or both
parties talking over RSP support XML register descriptions.  For the
XML-described case however `mips_register_type' is not used in raw to
cooked register conversion, so any special cases coded there are not
taken into account.

Instead a new function, `mips_pseudo_register_type', has been introduced
to handle size conversion, however lacking the special case for FCRs for
the Linux and the now defunct IRIX target.  The correct size has been
maintained for embedded targets however, due to the bundling of FCRs
with the embedded registers under the `rawnum >= MIPS_EMBED_FP0_REGNUM +
32' condition.

Add the missing case to `mips_pseudo_register_type' then, referring to
the FCR indices explicitly, and observing that between
`MIPS_EMBED_FP0_REGNUM + 32' and `MIPS_FIRST_EMBED_REGNUM' there is an
unused register slot whose contents are ignored so with the removal of
embedded FCRs from under that condition we don't have to care about it
and we can refer to the embedded registers starting from
MIPS_FIRST_EMBED_REGNUM instead.

Add a test case too so that we have means to check automatically that
the correct user-visible size of FCRs is maintained.

	gdb/
	* mips-tdep.c (mips_pseudo_register_type): Make FCRs always
	32-bit.

	gdb/testsuite/
	* gdb.arch/mips-fcr.exp: New test.
	* gdb.arch/mips-fcr.c: Source for the new test.
2016-10-06 16:56:57 +01:00
Jan Kratochvil f389f6fef7 testsuite: Fix recent GCC FAIL: gdb.arch/i386-signal.exp
gcc-6.2.1-2.fc24.x86_64

(gdb) backtrace 10^M
(gdb) FAIL: gdb.arch/i386-signal.exp: backtrace 10

(gdb) disas/s
Dump of assembler code for function main:
.../gdb/testsuite/gdb.arch/i386-signal.c:
30      {
   0x000000000040057f <+0>:     push   %rbp
   0x0000000000400580 <+1>:     mov    %rsp,%rbp
31        setup ();
   0x0000000000400583 <+4>:     callq  0x400590 <setup>
=> 0x0000000000400588 <+9>:     mov    $0x0,%eax
32      }
   0x000000000040058d <+14>:    pop    %rbp
   0x000000000040058e <+15>:    retq
End of assembler dump.

The .exp patch is an obvious typo fix I think.  The regex was written to
accept "ADDR in main" and I find it OK as checking .debug_line validity is not
the purpose of this testfile.

gcc-4.8.5-11.el7.x86_64 did not put the 'mov $0x0,%eax' instruction there at
all so there was no problem with .debug_line.

gdb/testsuite/ChangeLog
2016-10-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/i386-signal.exp (backtrace 10): Fix #2 typo.
2016-10-05 21:56:46 +02:00
Peter Bergner a4297203ea Update tests to account for the L operand being compulsory.
* gdb.arch/powerpc-power.exp <cmprb>: Update tests to account for
	the compulsory L operand changes.
	* gdb.arch/powerpc-power.s: Likewise.
2016-09-29 15:21:55 -05:00
Maciej W. Rozycki 3d0ec88224 MIPS/testsuite: mips16-thunks: Use `standard_output_file'
Correct a commit 2151ccc56c ("Always organize test artifacts in a
directory hierarchy") regression causing:

Running .../gdb/testsuite/gdb.arch/mips16-thunks.exp ...
gdb compile failed, Assembler messages:
Fatal error: can't create .../gdb/testsuite/gdb.arch/mips16-thunks-inmain.o: No such file or directory
gdb compile failed, Assembler messages:
Fatal error: can't create .../gdb/testsuite/gdb.arch/mips16-thunks-main.o: No such file or directory
gdb compile failed, mips-mti-linux-gnu-gcc: error: .../gdb/testsuite/gdb.arch/mips16-thunks-inmain.o: No such file or directory
mips-mti-linux-gnu-gcc: error: .../gdb/testsuite/gdb.arch/mips16-thunks-main.o: No such file or directory
UNSUPPORTED: gdb.arch/mips16-thunks.exp: No MIPS16 support in the toolchain.

by using `standard_output_file' to construct output file names
throughout.

	gdb/testsuite/
	* gdb.arch/mips16-thunks.exp: Use `standard_output_file'
	throughout.
2016-09-21 12:59:33 +01:00
Peter Bergner e2a92b1649 Update ISA 3.0 / POWER9 gdb tests to match GAS test cases.
* gdb.arch/powerpc-power.s: Update Power9 instruction tests
	and sync up the test with tests in gas/testsuite/gas/ppc.
	* gdb.arch/powerpc-power.exp: Likewise.
2016-09-15 16:10:05 -05:00
Yao Qi 27aba0477a Detect broken ptrace in gdb_skip_float_test
We recently found a ARM kernel ptrace bug
http://lists.infradead.org/pipermail/linux-arm-kernel/2016-May/431962.html
Details can be found in the comment in gdb_skip_float_test.  We can
skip floating point tests if the kernel bug is detected.

This patch adds more code in gdb_skip_float_test to detect the broken
ptrace on arm-linux.  Such detection should be done at the beginning
of the test, because it starts a fresh GDB, so change the test cases
to invoke gdb_skip_float_test at the beginning of test, and use its
return value afterwards.

Since gdb_skip_float_test becomes a gdb_caching_proc, so it can't
have an argument, this patch also removes argument "msg", which isn't
useful.

gdb/testsuite:

2016-09-02  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/arm-neon.exp: Skip it if gdb_skip_float_test returns
	true.
	* gdb.base/call-ar-st.exp: Invoke gdb_skip_float_test.
	* gdb.base/call-rt-st.exp: Likewise.
	* gdb.base/call-sc.exp: Invoke gdb_skip_float_test and use its
	return value instead of gdb,skip_float_test.
	* gdb.base/callfuncs.exp: Invoke gdb_skip_float_test.
	(do_function_calls): Use its return value instead of
	gdb,skip_float_test.
	* gdb.base/finish.exp: Likewise.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/return.exp: Likewise.
	* gdb.base/return2.exp: Likewise.
	* gdb.base/varargs.exp: Likewise.
	* lib/gdb.exp (gdb_skip_float_test): Change it to
	gdb_caching_proc.  Detect the broken ptrace on arm-linux.
2016-09-02 09:22:13 +01:00
Carl E. Love 20c2c024c1 Fix missing files for ld when test suite not compiled in the source directory
This patch fixes an issues with six test suite expect files that do not
run correctly when the test suite is not built in the source directory.  The
issue is these tests are not using the current "standard_testfile" call
but rather using the older set command to initialize the "testfile",
"srcfile" and "binprefix" variables or are missing the set for the
"binprefix" variable.

-----------------------------------------------

gdb/testsuite/ChangeLog

2016-08-19  Carl Love  <cel@us.ibm.com>

	* gdb.arch/altivec-regs.exp: Use standard_testfile instead of
	maintaining separate logic for constructing the output path.
	* gdb.arch/powerpc-d128-regs.exp: Likewise.
	* gdb.arch/ppc-dfp.exp: Likewise.
	* gdb.arch/ppc-fp.exp: Likewise.
	* gdb.arch/vsx-regs.exp: Likewise.
	* gdb.arch/altivec-abi.exp: Likewise, plus added local variable
	binprefix for generating the additional binary files.
2016-08-19 11:06:38 -07:00
Carl Love 63373e4f16 Fix for powerpc-power.exp gdb regression test for Power 9
The GDB testsuite reports 5 test failures on Power 7 instructions.
Additionally the ppc test is missing the new Power 9 instructions as
well as a large number of older instructions.  Additionally, some
instruction names have changed or been deleted.  This patch
fixes the test failures and completely updates the test to make it
consistent with the supported Power 9 instructions listed in:

   gas/testsuite/gas/ppc/power7.d
   gas/testsuite/gas/ppc/power8.d
   gas/testsuite/gas/ppc/power9.d
   gas/testsuite/gas/ppc/altivec.d
   gas/testsuite/gas/ppc/altivec2.d
   gas/testsuite/gas/ppc/altivec3.d
   gas/testsuite/gas/ppc/vsx.d
   gas/testsuite/gas/ppc/vsx2.d
   gas/testsuite/gas/ppc/vsx3.d
-----------------------------------------------------

gdb/testsuite/ChangeLog

2016-08-18  Carl Love  <cel@us.ibm.com>

	* gdb.arch/powerpc-power.s: Add new Power9 instruction tests
	and sync up the test with tests in gas/testsuite/gas/ppc.
	* gdb.arch/powerpc-power.exp: Likewise.
2016-08-18 13:10:59 -07:00
Yao Qi ffd19d610b Use standard_testfile in gdb.arch/thumb-prologue.exp and gdb.arch/thumb2-it.exp
This patch fixes the errors below:

Running /home/yao/SourceCode/gnu/gdb/git/gdb/testsuite/gdb.arch/thumb-prologue.exp ...
gdb compile failed, arm-linux-gnueabihf/bin/ld: cannot open output file /scratch/yao/gdb/build-git/arm-linux-gnueabihf/gdb/testsuite/gdb.arch/thumb-prologue: No such file or directory
collect2: error: ld returned 1 exit status
Running /home/yao/SourceCode/gnu/gdb/git/gdb/testsuite/gdb.arch/thumb2-it.exp ...
gdb compile failed, arm-linux-gnueabihf/bin/ld: cannot open output file /scratch/yao/gdb/build-git/arm-linux-gnueabihf/gdb/testsuite/gdb.arch/thumb2-it: No such file or directory

gdb/testsuite:

2016-05-23  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/thumb-prologue.exp: Use standard_testfile.
	* gdb.arch/thumb2-it.exp: Likewise.
2016-05-23 15:50:56 +01:00
Simon Marchi 952ebca583 ftrace tests: Use gdb_load_shlib result to lookup IPA in info sharedlibrary
Some fast tracepoints tests make sure that the in-process agent library
is properly loaded, by searching for the library name in "info
sharedlibrary".

Originally, it would search for the full path.  Since patch "Make ftrace
tests work with remote targets" [1], the "runtime" location of the IPA,
in the standard output directory, is not the same as the original
location, in the gdbserver build directory.  Therefore, the patch
changed the checks:

  gdb_test "info sharedlibrary" ".*${libipa}.*" "IPA loaded"

to

  gdb_test "info sharedlibrary" ".*[file tail ${libipa}].*" "IPA loaded"

so that only the "libinproctrace.so" part would be searched for.
Antoine (in CC) pointed out that I missed some, so I have to update
them.  In the mean time, I noticed that I missed a few test failures:
adding the SONAME to the IPA makes it possible for the test executable
to erroneously pick up libinproctrace.so from /usr/lib if the test
harness failed to put the libinproctrace.so we want to test in the right
place.  To mitigate that kind of error in the future, we can use the
return value of gdb_load_shlib (the path of the "runtime" version of the
library) and use that to search in the output of info sharedlibrary.

When testing locally, gdb_load_shlib returns the full normalized path of
the destination library, which the test executable should use e.g.:

  /path/to/gdb/testsuite/outputs/gdb.trace/thetest/libinproctrace.so

My testing showed that it was the same path that gdb displayed in info
sharedlibrary.  If the test executable picks up another
libinproctrace.so, the test will fail.

When testing remotely, gdb_load_shlib/gdb_remote_download only returns
us "libinproctrace.so", so the situation doesn't really change.  If
there is a rogue libinproctrace.so in /usr/lib on the target and we fail
to download ours, it might cover up a test failure.  But that situation
is probably still better than the original one, where it wasn't possible
to test remotely using the IPA at all.

[1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=6e774b13c3b81ac2599812adf058796948ce7e95

gdb/testsuite/ChangeLog:

	* gdb.arch/ftrace-insn-reloc.exp: Save gdb_load_shlib result,
	use it in info sharedlibrary test.
	* gdb.trace/ftrace-lock.exp: Likewise.
	* gdb.trace/ftrace.exp: Likewise.
	* gdb.trace/range-stepping.exp: Likewise.
	* gdb.trace/trace-break.exp: Likewise.
	* gdb.trace/trace-condition.exp: Likewise.
	* gdb.trace/trace-mt.exp: Likewise.
2016-04-28 09:49:01 -04: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 03a8c4dfc2 Fix IPA detection in ftrace-insn-reloc.exp
In commit 6e774b13c3, I forgot to update this test.

gdb/testsuite/ChangeLog:

	* gdb.arch/ftrace-insn-reloc.exp: Check for IPA basename instead of
	absolute.
2016-04-05 20:37:05 -04:00
Yao Qi bfa6adb959 Compile gdb.arch/arm-neon.exp with debug info
Pass "debug" to prepare_for_testing otherwise, some tests fail.

gdb/testsuite:

2016-03-29  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/arm-neon.exp: Pass debug to prepare_for_testing.
2016-03-29 14:53:25 +01:00
Andreas Arnez 64bcd522de S390: Fix output path for s390-multiarch test case
Since test artifacts are organized in a directory hierarchy, the
s390-multiarch test case is not executed correctly any more.  This is
because it uses an obsolete way of constructing the output paths.

This fix invokes standard_testfile instead.

gdb/testsuite/ChangeLog:

	* gdb.arch/s390-multiarch.exp: Use standard_testfile instead of
	maintaining separate logic for constructing the output path.
2016-03-17 10:55:55 +01:00
Yao Qi 30ca9da119 Fix output path for arm-disp-step.exp
This patch fixes the following error,

ERROR: (/scratch/yao/gdb/build-git/arm-linux-gnueabihf/gdb/testsuite/outputs/gdb.arch/arm-disp-step/arm-disp-step) No such file or directory
FAIL: gdb.arch/arm-disp-step.exp: Can't run to main

gdb/testsuite:

2016-03-01  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/arm-disp-step.exp: Use standard_testfile and
	prepare_for_testing.
2016-03-01 15:21:42 +00:00
Yao Qi dc856b3820 Compile gdb.arch/arm-neon.c with "quiet"
When we compile gdb.arch/arm-neon.c with options that don't enable NEON,
there are many error/warnings emitted into gdb.sum, which is annoying.
This patch fixes it by passing quiet to prepare_for_testing.

gdb/testsuite:

2016-03-01  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/arm-neon.exp: Pass quiet to prepare_for_testing.
2016-03-01 15:18:48 +00:00
Andreas Arnez 4a93215950 S390: Fix output path for s390-tdbregs test case
Since test artifacts are always organized in a directory hierarchy, the
s390-tdbregs test case is not executed correctly any more.  This is
because it uses an obsolete way of constructing the executable's path.

This change invokes prepare_for_testing instead.

gdb/testsuite/ChangeLog:

	* gdb.arch/s390-tdbregs.exp: Use prepare_for_testing instead of
	manually constructing the output path.
2016-03-01 12:43:55 +01:00
Andreas Arnez f24894771e S390: Fix internal error with stackless inferior
This fixes a GDB internal error that may occur when the inferior has no
valid stack pointer in r15.

gdb/testsuite/ChangeLog:

	* gdb.arch/s390-stackless.S: New.
	* gdb.arch/s390-stackless.exp: New.

gdb/ChangeLog:

	* s390-linux-tdep.c (s390_backchain_frame_unwind_cache): Avoid
	exception when attempting to access the inferior's backchain.
2016-03-01 12:43:55 +01:00
Walfred Tedeschi 012b3a217a Intel MPX bound violation handling
With Intel Memory Protection Extensions it was introduced the concept of
boundary violation.  A boundary violations is presented to the inferior as
a segmentation fault having SIGCODE 3.  This patch adds a
handler for a boundary violation extending the information displayed
when a bound violation is presented to the inferior.  In the stop mode
case the debugger will also display the kind of violation: "upper" or
"lower", bounds and the address accessed.
On no stop mode the information will still remain unchanged.  Additional
information about bound violations are not meaningful in that case user
does not know the line in which violation occurred as well.

When the segmentation fault handler is stop mode the out puts will be
changed as exemplified below.

The usual output of a segfault is:
Program received signal SIGSEGV, Segmentation fault
0x0000000000400d7c in upper (p=0x603010, a=0x603030, b=0x603050,
c=0x603070, d=0x603090, len=7) at i386-mpx-sigsegv.c:68
68        value = *(p + len);

In case it is a bound violation it will be presented as:
Program received signal SIGSEGV, Segmentation fault
Upper bound violation while accessing address 0x7fffffffc3b3
Bounds: [lower = 0x7fffffffc390, upper = 0x7fffffffc3a3]
0x0000000000400d7c in upper (p=0x603010, a=0x603030, b=0x603050,
c=0x603070, d=0x603090, len=7) at i386-mpx-sigsegv.c:68
68        value = *(p + len);

In mi mode the output of a segfault is:
*stopped,reason="signal-received",signal-name="SIGSEGV",
signal-meaning="Segmentation fault", frame={addr="0x0000000000400d7c",
func="upper",args=[{name="p", value="0x603010"},{name="a",value="0x603030"}
,{name="b",value="0x603050"}, {name="c",value="0x603070"},
{name="d",value="0x603090"},{name="len",value="7"}],
file="i386-mpx-sigsegv.c",fullname="i386-mpx-sigsegv.c",line="68"},
thread-id="1",stopped-threads="all",core="6"

in the case of a bound violation:
*stopped,reason="signal-received",signal-name="SIGSEGV",
signal-meaning="Segmentation fault",
sigcode-meaning="Upper bound violation",
lower-bound="0x603010",upper-bound="0x603023",bound-access="0x60302f",
frame={addr="0x0000000000400d7c",func="upper",args=[{name="p",
value="0x603010"},{name="a",value="0x603030"},{name="b",value="0x603050"},
{name="c",value="0x603070"},{name="d",value="0x603090"},
{name="len",value="7"}],file="i386-mpx-sigsegv.c",
fullname="i386-mpx-sigsegv.c",line="68"},thread-id="1",
stopped-threads="all",core="6"

2016-02-18  Walfred Tedeschi  <walfred.tedeschi@intel.com>

gdb/ChangeLog:

	* NEWS: Add entry for bound violation.
	* amd64-linux-tdep.c (amd64_linux_init_abi_common):
	Add handler for segmentation fault.
	* gdbarch.sh (handle_segmentation_fault): New.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* i386-linux-tdep.c (i386_linux_handle_segmentation_fault): New.
	(SIG_CODE_BONDARY_FAULT): New define.
	(i386_linux_init_abi): Use i386_mpx_bound_violation_handler.
	* i386-linux-tdep.h (i386_linux_handle_segmentation_fault) New.
	* i386-tdep.c (i386_mpx_enabled): Add as external.
	* i386-tdep.c (i386_mpx_enabled): Add as external.
	* infrun.c (handle_segmentation_fault): New function.
	(print_signal_received_reason): Use handle_segmentation_fault.

gdb/testsuite/ChangeLog:

	* gdb.arch/i386-mpx-sigsegv.c: New file.
	* gdb.arch/i386-mpx-sigsegv.exp: New file.
	* gdb.arch/i386-mpx-simple_segv.c: New file.
	* gdb.arch/i386-mpx-simple_segv.exp: New file.

gdb/doc/ChangeLog:

	* gdb.texinfo (Signals): Add bound violation display hints for
	a SIGSEGV.
2016-02-18 17:25:49 +01:00
Jan Kratochvil a7a0a6a95b Add missing gdb.arch/i386-prologue.c prototypes
The testfile has not ran because:
gdb.arch/i386-prologue.c:34:3: warning: implicit declaration of function 'standard' [-Wimplicit-function-declaration]
   standard ();
   ^
gdb.arch/i386-prologue.c:35:3: warning: implicit declaration of function 'stack_align_ecx' [-Wimplicit-function-declaration]
   stack_align_ecx ();
   ^
gdb.arch/i386-prologue.c:36:3: warning: implicit declaration of function 'stack_align_edx' [-Wimplicit-function-declaration]
   stack_align_edx ();
   ^
gdb.arch/i386-prologue.c:37:3: warning: implicit declaration of function 'stack_align_eax' [-Wimplicit-function-declaration]
   stack_align_eax ();
   ^

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

	* gdb.arch/i386-prologue.c: Add missing prototypes.
2016-02-15 19:01:03 +01:00
Jan Kratochvil c99dbb4246 Fix more testcases with standard_output_file.
Since
	commit 2151ccc56c
	Author: Simon Marchi <simon.marchi@ericsson.com>
	Date:   Mon Feb 8 14:02:36 2016 -0500
	    Always organize test artifacts in a directory hierarchy
these testfiles could not build.

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

	* gdb.arch/i386-gnu-cfi.exp: Use standard_output_file.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-size.exp: Likewise.
2016-02-15 18:54:03 +01:00
Simon Marchi 97e9415187 i386-biarch-core.exp: Use standard_output_file
Fix the core file path to use the standard output directory.

gdb/testsuite/ChangeLog:

	* i386-biarch-core.exp: Define corefile using
	standard_output_file.
2016-02-12 13:56:21 -05:00
Yao Qi 01113bc1c5 [ARM] Software single step cross kernel helpers
GDB step cross kernel helpers only works if the kernel helpers are tail
called, which is the case how it is used in glibc.  See __aeabi_read_tp
in sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S.  In __aeabi_read_tp,
branch/jump to the kernel helper is the last instruction, and the next
instruction address is in LR, which is in caller function.  GDB can
handle this correctly.  For example, glibc function __GI___ctype_init
calls __aeabi_read_tp

   0xb6e19b30 <__GI___ctype_init+4>:	ldr	r3, [pc, #80]	;
   0xb6e19b34 <__GI___ctype_init+8>:	bl	0xb6e0a6e0 <__aeabi_read_tp>
   0xb6e19b38 <__GI___ctype_init+12>:	ldr	r3, [pc, r3]

and __aeabi_read_tp calls kernel helper,

(gdb) disassemble __aeabi_read_tp
   0xb6fef5d0 <+0>:	mvn	r0, #61440	; 0xf000
   0xb6fef5d4 <+4>:	sub	pc, r0, #31

once GDB or GDBserver single step instruction on 0xb6fef5d4, LR is
0xb6e19b38, which is right address of next instruction to set breakpoint
on.

However, if the kernel helpers are not tail-called, the LR is still the
address in the caller function of kernel helper's caller, which isn't
the right address of next instruction to set breakpoint on.  For example,
we use kernel helper in main,

(gdb) disassemble main
....
   0x00008624 <+32>:    mov     r3, #4064       ; 0xfe0^M
   0x00008628 <+36>:    movt    r3, #65535      ; 0xffff^M
   0x0000862c <+40>:    blx     r3
   0x00008630 <+44>:    ldr     r3, [r11, #-8]

kernel helper is called on 0x0000862c and the expected next instruction
address is 0x00008630, but the LR now is the return address of main.
The problem here is LR may not have the right address because when we
single step the instruction, it isn't executed yet, so the LR isn't
updated.  This patch fix this problem by decoding instruction, if the
instruction updates LR (BL and BLX), the next instruction address is
PC + INSN_SIZE, otherwise, get the address of next instruction from LR.

gdb:

2016-02-12  Yao Qi  <yao.qi@linaro.org>

	* arch/arm-linux.c (arm_linux_get_next_pcs_fixup): Calculate
	nextpc according to instruction.

gdb/testsuite:

2016-02-12  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/arm-single-step-kernel-helper.c: New.
	* gdb.arch/arm-single-step-kernel-helper.exp: New.
2016-02-12 15:58:56 +00: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
Ruslan Kabatsayev b593e3d9b0 Fix wrong output of x87 registers due to truncation to double on amd64
When `info float` is used on an AMD64 system, GDB prints
floating-point values of x87 registers with raw contents like
0x361a867a8e0527397ce0 or 0xc4f988454a1ddd3cfdab wrongly.

This happens due to truncation to double, after which the former
becomes 0.0, and the latter becomes negative infinity.  This is caused
by failed detection of x86-64 host, which results in setting
gdb_host_{float,double,long_double}_format to zeros.

This commit fixes this misdetection, and adds a test to make sure
future commits don't introduce a regression here.

gdb/ChangeLog:
2015-12-09  Ruslan Kabatsayev  <b7.10110111@gmail.com>

	PR gdb/18702
	* configure.host: Fix detection of x86_64 host when setting
	floatformats.

gdb/testsuite/ChangeLog:
2015-12-09  Ruslan Kabatsayev  <b7.10110111@gmail.com>
	    Pedro Alves  <pedro@redhat.com>

	PR gdb/18702
	Add checking of floatformats setup on x86_64 hosts.
	* gdb.arch/i386-float.S (main): Load bigval and smallval.
	(smallval, bigval): New labels/constants.
	* gdb.arch/i386-float.exp: Use with_test_prefix and test "info
	float" after loading bigval and smallval.
2015-12-09 12:17:40 +00:00
Yao Qi 58b584afe6 New test gdb.arch/arm-neon.exp
Both ARM and AArch64 have defined some SIMD data types in arm_neon.h,
but we don't have a test case for passing them and returning them in
inferior call.  This test also covers passing and returning
homogeneous short vector aggregate (defined by AArch64 ABI document)
in inferior call too.

gdb/testsuite:

	* gdb.arch/arm-neon.exp: New.
	* gdb.arch/arm-neon.c: New.
2015-11-27 14:50:30 +00:00
Jose E. Marchesi 9c88ed8f11 sparc: fix build of gdb/testsuite/gdb.arch/sparc-sysstep.c
This patch adds a missing include that makes the test program to not
be built (--Wimplicit-function-declaration).

gdb/testsuite/ChangeLog:

2015-11-20  Jose E. Marchesi  <jose.marchesi@oracle.com>

    	* gdb.arch/sparc-sysstep.c: Include unistd.h for getpid.
2015-11-20 10:48:56 +01:00
Kevin Buettner f01dcfd9a7 testsuite: Define and use gdb_target_symbol_prefix_flags_asm.
Some of the source code for the test cases in the GDB testsuite
reside in .S files containing assembly code.  These files typically
define a symbol - such as main - which may, depending on the target,
require a prefix such as underscore.

For example, gdb.dwarf2/dw-compdir-oldgcc.S defines the symbol main:

main:	.globl main

Some targets, such as rx-elf, require main to have an underscore
prefix.  (If it doesn't, a linker error results due to not being able
to find _main required by crt0.o.) So, instead, the above should look
like this for rx-elf and other targets with this same requirement:

_main:	.globl	_main

This patch defines a new tcl proc in lib/gdb named
gdb_target_symbol_prefix_flags_asm.  This proc returns a string
which will - assuming everything else is wired up correctly - cause
-DSYMBOL_PREFIX=_ to be passed on the command line to the compiler.

The test cases are augmented with a macro definition for SYMBOL
as follows:

    #define CONCAT1(a, b) CONCAT2(a, b)
    #define CONCAT2(a, b) a ## b

    #ifdef SYMBOL_PREFIX
    # define SYMBOL(str)     CONCAT1(SYMBOL_PREFIX, str)
    #else
    # define SYMBOL(str)     str
    #endif

Symbols, such as main shown in the example earlier are then wrapped
with SYMBOL like this:

SYMBOL(main):	.globl SYMBOL(main)

The net effect will be to add a prefix for those targets which need
it and add no prefix for those targets which do not.

It should be noted that there was already a proc in lib/gdb.exp
called gdb_target_symbol_prefix_flags.  It still exists, but has
been significantly rewritten.  (There is only one small difference
between the two versions.)

That proc used to explicitly list targets which were known to
require an underscore prefix.  This is no longer done; the recently
added proc, gdb_target_symbol_prefix, is now invoked to dynamically
discover whether or not a prefix is required for that particular
target.

The difference between gdb_target_symbol_prefix_flags_asm
and gdb_target_symbol_prefix_flags is that the former returns
a bare prefix while the latter returns the prefix enclosed in
double quotes.  I.e. assuming that the discovered prefix is
underscore, gdb_target_symbol_prefix_flags_asm returns:

    additional_flags=-DSYMBOL_PREFIX=_

while gdb_target_symbol_prefix_flags returns:

    additional_flags=-DSYMBOL_PREFIX="_"

The double-quoted version is not suitable for using with .S files
containing assembly code; there is no way to strip the double quotes
using C preprocessor constructs.

It would be possible to use the bare (non double quoted) version in
C source code.  However, the supporting macros become more complicated
and therefore more difficult to maintain.

gdb/testsuite/ChangeLog:

	* lib/gdb (gdb_target_symbol_prefix_flags_asm): New proc.
	(gdb_target_symbol_prefix_flags): Define in terms of _asm
	version.
	* gdb.arch/i386-float.exp, gdb.arch/i386-permbkpt.exp,
	gdb.dwarf2/dw2-canonicalize-type.exp,
	gdb.dwarf2/dw2-compdir-oldgcc.exp, gdb.dwarf2/dw2-minsym-in-cu.exp,
	gdb.dwarf2/dw2-op-stack-value.exp, gdb.dwarf2/dw2-unresolved.exp,
	gdb.dwarf2/fission-reread.exp, gdb.dwarf2/pr13961.exp: Use flags
	provided by gdb_target_symbol_prefix_flags_asm.
	* gdb.dwarf2/dw2-canonicalize-type.S, gdb.dwarf2/dw2-compdir-oldgcc.S,
	testsuite/gdb.dwarf2/dw2-minsym-in-cu.S,
	testsuite/gdb.dwarf2/dw2-unresolved-main.c,
	testsuite/gdb.dwarf2/dw2-unresolved.S, gdb.dwarf2/fission-reread.S,
	gdb.dwarf2/pr13961.S: Define and use SYMBOL macro (and supporting
	macros where needed).  Use this macro for symbols which require
	the prefix provided by SYMBOL_PREFIX.
2015-11-07 11:03:49 -07:00
Walfred Tedeschi 14cb1c0b38 Fix non stopping breakpoint on newer compilers.
The breakpoint presented in the return statement was not activated while
compiling the test with gcc 4.9.2.  Added a dummy statement to allow the
breakpoint again.

2015-10-14  Walfred Tedeschi  <walfred.tedeschi@intel.com>

gdb/testsuite:

	* i386-mpx-map.c (foo): Add dummy statement to trigger breakpoint.

Change-Id: I5293ca1c7f82a631e1e41cb650c30dd2d09ef3c2
Signed-off-by: Walfred Tedeschi <walfred.tedeschi@intel.com>
2015-11-04 11:09:03 +01:00
Walfred Tedeschi 1a2ccd2e32 Changing compiler flags for MPX tests.
Adapts tests to use actual GCC flags, previous used flags were
related to an internal GCC release.

2015-06-18  Walfred Tedeschi  <walfred.tedeschi@intel.com>

gdb/testsuite:

	* gdb.arch/i386-mpx-map.exp (comp_flags): Use released GCC flags.
	* gdb.arch/i386-mpx.exp (comp_flags): Use released GCC flags.

Change-Id: Id4c4551693a8df071ed4b71bb5dfb46a526ed5db
Signed-off-by: Walfred Tedeschi <walfred.tedeschi@intel.com>
2015-11-04 11:09:02 +01:00
Yao Qi 0fd8ac1c45 New test case gdb.arch/disp-step-insn-reloc.exp
This patch adds a new test case which uses gdb.arch/insn-reloc.c too
to test displaced stepping.  Nowadays, tests are for x86, x86_64 and
aarch64.

gdb/testsuite:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/disp-step-insn-reloc.exp: New test case.
2015-10-12 11:28:38 +01:00
Yao Qi 8240f4421f More tests in gdb.arch/insn-reloc.c
This patch adds more tests in gdb.arch/insn-reloc.c to cover
instruction BL and cover B.CON when CON is false.  These new added
tests can be used for displaced stepping too.

gdb/testsuite:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/insn-reloc.c (can_relocate_bcond): Rename to ...
	(can_relocate_bcond_true): ... it.
	(can_relocate_bcond_false): New function.
	(foo): Likewise.
	(can_relocate_bl): Likewise.
	(testcases) [__aarch64__]: Add can_relocate_bcond_false and
	can_relocate_bl.
2015-10-12 11:28:38 +01:00
Pierre Langlois 4f51c22aca Add a gdb.trace test for instruction relocation
This test case makes sure that relocating PC relative instructions does
not change their behaviors.  All PC relative AArch64 instructions are
covered.  While call and jump (32 bit relative) instructions are covered
on x86.

The test case creates a static array of function pointers for each
supported architecture.  Each function in this array tests a specific
instruction using inline assembly.  They all need to contain a symbol in
the form of 'set_point\[0-9\]+' and finish by either calling pass or
fail.  The number of 'set_pointN' needs to go from 0 to
(ARRAY_SIZE - 1).

The test will:
- look up the number of function pointers in the static array.
- set fast tracepoints on each 'set_point\[0-9\]+' symbol, one in each
  functions from 0 to (ARRAY_SIZE - 1).
- run the trace experiment and make sure the pass function is called for
  every function.

gdb/testsuite/ChangeLog:

	* gdb.arch/insn-reloc.c: New file.
	* gdb.arch/ftrace-insn-reloc.exp: New file.
2015-09-21 15:01:05 +01:00
Pedro Alves 7f03bd92e3 PPC64: Fix gdb.arch/ppc64-atomic-inst.exp with displaced stepping
The ppc64 displaced step code can't handle atomic sequences.  Fallback
to stepping over the breakpoint in-line if we detect one.

gdb/ChangeLog:
2015-08-07  Pedro Alves  <palves@redhat.com>

	* infrun.c (displaced_step_prepare_throw): Return -1 if
	gdbarch_displaced_step_copy_insn returns NULL.  Update intro
	comment.
	* rs6000-tdep.c (LWARX_MASK, LWARX_INSTRUCTION, LDARX_INSTRUCTION)
	(STWCX_MASK, STWCX_INSTRUCTION, STDCX_INSTRUCTION): Move higher up
	in file.
	(ppc_displaced_step_copy_insn): New function.
	(ppc_displaced_step_fixup): Update comment.
	(rs6000_gdbarch_init): Install ppc_displaced_step_copy_insn as
	gdbarch_displaced_step_copy_insn hook.
	* gdbarch.sh (displaced_step_copy_insn): Document what happens on
	NULL return.
	* gdbarch.h: Regenerate.

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

	* gdb.arch/ppc64-atomic-inst.exp (do_test): New procedure, move
	tests here.
	(top level): Run do_test with and without displaced stepping.
2015-08-07 17:26:21 +01:00
Sandra Loosemore 61a934ca20 Restrict gdb.arch/ppc64-symtab-cordic.exp to ppc64 targets.
2015-07-30  Sandra Loosemore  <sandra@codesourcery.com>

	gdb/testsuite/
	* gdb.arch/ppc64-symtab-cordic.exp: Restrict to ppc64 targets.
2015-07-30 12:06:29 -07:00
Jan Kratochvil 775a3298dc Fix gdb.arch/i386-biarch-core.exp FAIL on i386.
This new test fails on i686 buildbot slaves,

(gdb) core-file /home/gdb-buildbot-2/fedora-x86-64-2/fedora-i686/build/gdb/testsuite/gdb.arch/i386-biarch-core.core
"/home/gdb-buildbot-2/fedora-x86-64-2/fedora-i686/build/gdb/testsuite/gdb.arch/i386-biarch-core.core"
is not a core dump: File format not recognized
(gdb) FAIL: gdb.arch/i386-biarch-core.exp: core-file

There are two problems:

(1) The testcase did not really test if elf64-i386 is supported by GDB (BFD).
That was OK for a Fedora testcase but I forgot about it when submitting it
upstream.

I haven't really verified if the GNU target is elf64-little but it seems so,
no other one seems suitable from:
	elf32-x86-64
	elf64-big
	elf64-k1om
	elf64-l1om
	elf64-little
	elf64-x86-64
	pei-x86-64

(2) The output of the "core-file" command itself can be arbitrary as the
elf64-i386 file with x86_64 registers is really broken; but that does not
matter much, important is the following test whether core file memory is
readable.
	./configure --enable-64-bit-bfd
	(gdb) core-file /home/jkratoch/redhat/gdb-test-build32-plus64/gdb/testsuite/gdb.arch/i386-biarch-core.core^M
	warning: Couldn't find general-purpose registers in core file.^M
	Failed to read a valid object file image from memory.^M
	warning: Couldn't find general-purpose registers in core file.^M
	#0  <unavailable> in ?? ()^M
	(gdb) FAIL: gdb.arch/i386-biarch-core.exp: core-file
	x/i 0x400078^M
	   0x400078:    hlt    ^M
	(gdb) PASS: gdb.arch/i386-biarch-core.exp: .text is readable

I do not know much dejagnu but I expect 'istarget' tests against the site.exp
'target_triplet' content which is set to the primary GDB target
(--target=...).

GDB is normally never configured for primary target elf64-i386, I think BFD
does not know such explicit target, it gets recognized as elf64-little.

In fact many testfiles of the GDB testsuite are wrong as they require
'istarget' (therefore primary GDB target) even for just loading arch specific
files which would be sufficient with secondary target (--enable-targets=...)
support.

This my new patch removes this 'istarget' check as it is IMO unrelated to what
we need to test.  Although you are right we do 'x/i' and test for 'hlt' so
I think we should test also for available 'set architecture i386'.
We could also test by 'x/bx' instead of 'x/i' to avoid such additional
test/requirement.

This testcase comes from a different bug from 2009:
	https://bugzilla.redhat.com/show_bug.cgi?id=457187
	http://pkgs.fedoraproject.org/cgit/gdb.git/commit/?id=94cd124608bf0dd359cb48a710800d72c21b30c3

That bug has been fixed in the meantime but the same testcase was reproducing
this new different bug - internal error regression - so I submitted it.

We can remove the "x/bx $address" test but it was useful for the previous bug
from 2009 as that time the internal error regression did not happen, just the
core file was not recognized (which would not be detected by the proposed
ignoring of the "core-file" command output) and so the core file was not
available.  That can be tested by the "x/bx $address" test.

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

	* gdb.arch/i386-biarch-core.exp: Replace istarget
	by "complete set gnutarget". Remove expectation for the "core-file"
	command.
2015-07-16 18:01:22 +02:00
Jan Kratochvil cfa68bae42 i386-biarch-core.exp: Fix comment typo
gdb/testsuite/ChangeLog
2015-07-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/i386-biarch-core.exp: Fix comment typo.
2015-07-14 19:50:20 +02:00
Yao Qi 4931af25b8 New proc is_aarch64_target
Some tests expect the the target is aarch64, but checking target
triplet is not accurate, because target triplet can be aarch64 but
the program is in arm (or aarch32) state.

This patch addes a new proc is_aarch64_target which returns true
if the target is on aarch64 state.

gdb/testsuite:

2015-07-07  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/aarch64-atomic-inst.exp: Check is_aarch64_target
	instead of istarget "aarch64*-*-*".
	* gdb.arch/aarch64-fp.exp: Likewise.
	* gdb.base/float.exp: Likewise.
	* gdb.reverse/aarch64.exp: Likewise.
	* lib/gdb.exp (is_aarch64_target): New proc.
2015-07-07 16:58:20 +01:00
Yao Qi 9fcf688e80 New proc is_aarch32_target
GDB tests running on arm target should be also run on aarch32
(32-bit mode on aarch64).  There should be no difference.  It is not
precise to check target triplet to decide which tests should be run,
because if I compiler all the test binary in 32-bit (arm program),
but target triplet is still aarch64, so that these arm specific tests
are skipped.

This patch is to add a new proc is_aarch32_target which return true
if target triplet is arm or the test binary is compiled for arm.

gdb/testsuite:

2015-07-07  Yao Qi  <yao.qi@linaro.org>

	* lib/gdb.exp (is_aarch32_target): New proc.
	* gdb.arch/arm-bl-branch-dest.exp: Check is_aarch32_target
	instead of "istarget "arm*-*-*"".
	* gdb.arch/arm-disp-step.exp: Likewise.
	* gdb.arch/thumb-bx-pc.exp: Likewise.
	* gdb.arch/thumb-prologue.exp: Likewise.
	* gdb.arch/thumb-singlestep.exp: Likewise.
	* gdb.base/disp-step-syscall.exp: Likewise.
	* gdb.base/float.exp: Likewise.
2015-07-07 16:58:19 +01:00
Yao Qi d441430b75 [arm] Fix regression by Do not skip prologue for asm (.S) files
Patch "Do not skip prologue for asm (.S) files" [1] changes GDB's
behaviour on which test gdb.arch/thumb-singlestep.exp depends, so
it causes the fail below:

 (gdb) si^M
 37              blx     foo^M
 (gdb) FAIL: gdb.arch/thumb-singlestep.exp: step into foo

the test assumes the program will stop at the instruction after "push"
but it doesn't.  The fix to this fail is to do one more single step.

[1] https://sourceware.org/ml/gdb-patches/2015-06/msg00561.html

gdb/testsuite:

2015-07-07  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/thumb-singlestep.exp: Do one more single step.
2015-07-07 10:40:30 +01:00
Jan Kratochvil 6e22494e50 Do not skip prologue for asm (.S) files
GDB tries to skip prologue for .S files according to .debug_line but it then
places the breakpoint to a location where it is never hit.

This is because #defines in .S files cause prologue skipping which is
completely inappropriate, for s390x:

glibc/sysdeps/unix/syscall-template.S
78:/* This is a "normal" system call stub: if there is an error,
79:   it returns -1 and sets errno.  */
80:
81:T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
82:     ret

00000000000f4210 T __select
 Line Number Statements:
  Extended opcode 2: set Address to 0xf41c8
  Advance Line by 80 to 81
  Copy
  Advance PC by 102 to 0xf422e
  Special opcode 6: advance Address by 0 to 0xf422e and Line by 1 to 82
  Special opcode 34: advance Address by 2 to 0xf4230 and Line by 1 to 83
  Advance PC by 38 to 0xf4256
  Extended opcode 1: End of Sequence
  Compilation Unit @ offset 0x28b3e0:
 <0><28b3eb>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <28b3ec>   DW_AT_stmt_list   : 0x7b439
    <28b3f0>   DW_AT_low_pc	 : 0xf41c8
    <28b3f8>   DW_AT_high_pc     : 0xf4256
    <28b400>   DW_AT_name        : ../sysdeps/unix/syscall-template.S
    <28b423>   DW_AT_comp_dir    : /usr/src/debug////////glibc-2.17-c758a686/misc
    <28b452>   DW_AT_producer    : GNU AS 2.23.52.0.1
    <28b465>   DW_AT_language    : 32769        (MIPS assembler)

without debuginfo or with debuginfo and the fix - correct address:
(gdb) b select
Breakpoint 1 at 0xf4210

It is also where .dynsym+.symtab point to:
00000000000f4210 T __select
00000000000f4210 W select

with debuginfo, without the fix:
(gdb) b select
Breakpoint 1 at 0xf41c8: file ../sysdeps/unix/syscall-template.S, line 81.

One part is to behave for asm files similar way like for 'locations_valid':
  /* Symtab has been compiled with both optimizations and debug info so that
     GDB may stop skipping prologues as variables locations are valid already
     at function entry points.  */
  unsigned int locations_valid : 1;

The other part is to extend the 'locations_valid'-like functionality more.

Both minsym_found and find_function_start_sal need to be patched, otherwise
their addresses do not match and GDB regresses on ppc64:

gdb/ChangeLog
2015-06-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linespec.c (minsym_found): Reset sal.PC for COMPUNIT_LOCATIONS_VALID
	and language_asm..
	* symtab.c (find_function_start_sal): Likewise.

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

	* gdb.arch/amd64-prologue-skip.S: New file.
	* gdb.arch/amd64-prologue-skip.exp: New file.
2015-06-26 15:11:14 +02:00
Peter Bergner 8e6500c55e Fix rfebb gdb test cases.
The following patch fixed the assembly / disassembly of the rfebb instruction:

    https://sourceware.org/ml/binutils/2015-06/msg00190.html

This patch updates the gdb testsuite to match the new disassembly behavior.

gdb/testsuite/
	* gdb.arch/powerpc-power.exp <rfebb>: Fixup test results.
	* gdb.arch/powerpc-power.s <rfebb>: Likewise.
2015-06-23 13:33:05 -05:00
Walfred Tedeschi 29c1c24429 Add support for bound table in the Intel MPX context.
Intel(R) Memory protection bound information are located in register
to be tested using the MPX new instructions. Since the number of
bound registers are limited a table is used to provide storage for
bounds during run-time.

In order to investigate the contents of the MPX bound table two new
commands are added to GDB.  "show mpx bound" and "set mpx bound" are
used to display and set values on the MPX bound table.

2015-04-20  Walfred Tedeschi  <walfred.tedeschi@intel.com>
            Mircea Gherzan  <mircea.gherzan@intel.com>

	* i386-tdep.c (MPX_BASE_MASK, MPX_BD_MASK, MPX_BT_MASK, MPX_BD_MASK_32,
	MPX_BT_MASK_32): New macros.
	(i386_mpx_set_bounds): New function that implements
	the command "set-mpx-bound".
	(i386_mpx_enabled) Helper function to test MPX availability.
	(i386_mpx_bd_base) Helper function to calculate the base directory
	address. (i386_mpx_get_bt_entry) Helper function to access a bound
	table entry. (i386_mpx_print_bounds) Effectively display bound
	information. (_initialize_i386_tdep): Qdd new commands
	to commands "set mpx" and "show mpx". (_initialize_i386_tdep):
	Add "bound" to the commands "show mpx" and "set mpx" commands.
	(mpx_set_cmdlist and mpx_show_cmdlist):
	list for the new prefixed "set mpx" and "show mpx" commands.
	* NEWS: List new commands for MPX support.

testsuite:

	* gdb.arch/i386-mpx-map.c: New file.
	* gdb.arch/i386-mpx-map.exp: New File.

doc:
	* gdb.texinfo (i386): Add documentation about "show mpx bound"
	and "set mpx bound".
2015-06-10 09:58:06 +02:00