binutils-gdb/gdb/testsuite/gdb.base
Pedro Alves 95e95a6de2 Make breakpoint/location number parsing error output consistent
... and also make GDB catch a few more cases of invalid input.

This fixes the inconsistency in GDB's output (e.g., "bad" vs "Bad")
exposed by the new tests added in the previous commit.

Also, makes the "0-0" and "inverted range" cases be loud errors.

Also makes GDB reject negative breakpoint number in ranges.  We
already rejected negative number literals, but you could still subvert
that via convenience variables, like:

  (gdb) set $bp -1
  (gdb) disable $bp.1-2

The change to get_number_trailer fixes a bug exposed by the new tests.
The function did not handle parsing "-$num".  [This wasn't visible in
the gdb.multi/tids.exp (which has similar tests) because the TID range
parsing is implemented differently.]

gdb/ChangeLog:
2017-11-07  Pedro Alves  <palves@redhat.com>

	* breakpoint.c (extract_bp_kind): New enum.
	(extract_bp_num, extract_bp_or_bp_range): New functions, partially
	factored out from ...
	(extract_bp_number_and_location): ... here.
	* cli/cli-utils.c (get_number_trailer): Handle '-$variable'.

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

	* gdb.base/ena-dis-br.exp (test_ena_dis_br): Adjust test.
	* gdb.cp/ena-dis-br-range.exp: Adjust tests.
	(disable_invalid, disable_inverted, disable_negative): New
	procedures.
	("bad numbers"): New set of tests.
2017-11-07 11:07:19 +00:00
..
comp-dir/subdir
gdbinit-history
a2-run.exp
advance.c
advance.exp
alias.exp
all-architectures-0.exp
all-architectures-1.exp
all-architectures-2.exp
all-architectures-3.exp
all-architectures-4.exp
all-architectures-5.exp
all-architectures-6.exp
all-architectures-7.exp
all-architectures.exp.in
all-bin.exp
all-types.c
annota1.c
annota1.exp
annota3.c
annota3.exp
annota-input-while-running.c
annota-input-while-running.exp
anon.c
anon.exp
args.c
args.exp
argv0-symlink.c
argv0-symlink.exp
arithmet.exp
arrayidx.c
arrayidx.exp
asmlabel.c
asmlabel.exp
assign.exp
async-shell.c
async-shell.exp
async.c
async.exp
attach2.c
attach-non-pgrp-leader.c Test attaching to a process that isn't a process group leader 2017-11-06 16:32:04 +00:00
attach-non-pgrp-leader.exp Test attaching to a process that isn't a process group leader 2017-11-06 16:32:04 +00:00
attach-pie-misread.c
attach-pie-misread.exp
attach-pie-noexec.c
attach-pie-noexec.exp
attach-twice.c
attach-twice.exp
attach-wait-input.c
attach-wait-input.exp
attach.c
attach.exp
auto-connect-native-target.c
auto-connect-native-target.exp
auto-load-script
auto-load.c
auto-load.exp
auxv.c
auxv.exp
average.c
bad-file.exp
bang.exp
bar.c
batch-preserve-term-settings.c
batch-preserve-term-settings.exp
baz.c
bfp-test.c
bfp-test.exp
bg-execution-repeat.c
bg-execution-repeat.exp
bigcore.c
bigcore.exp
bitfields2.c
bitfields2.exp
bitfields.c
bitfields.exp
bitops.exp
bp-cmds-execution-x-script.c
bp-cmds-execution-x-script.exp
bp-cmds-execution-x-script.gdb
bp-permanent.c
bp-permanent.exp
branch-to-self.c
branch-to-self.exp
break1.c
break-always.c
break-always.exp
break-caller-line.c
break-caller-line.exp
break-entry.exp
break-fun-addr1.c
break-fun-addr2.c
break-fun-addr.exp
break-idempotent.c
break-idempotent.exp
break-inline.c
break-inline.exp
break-interp-lib.c
break-interp-main.c
break-interp.exp
break-main-file-remove-fail.c
break-main-file-remove-fail.exp
break-on-linker-gcd-function.cc
break-on-linker-gcd-function.exp
break-probes-solib.c
break-probes.c
break-probes.exp
break-unload-file.c
break-unload-file.exp
break.c
break.exp
breakpoint-in-ro-region.c
breakpoint-in-ro-region.exp
breakpoint-shadow.c
breakpoint-shadow.exp
call-ar-st.c
call-ar-st.exp
call-rt-st.c
call-rt-st.exp
call-sc.c
call-sc.exp
call-signal-resume.exp
call-signals.c
call-strs.c
call-strs.exp
callexit.c
callexit.exp
callfuncs.c
callfuncs.exp
catch-fork-kill.c
catch-fork-kill.exp
catch-fork-static.exp
catch-gdb-caused-signals.c
catch-gdb-caused-signals.exp
catch-load-so.c
catch-load.c
catch-load.exp
catch-signal-fork.c
catch-signal-fork.exp
catch-signal-siginfo-cond.c
catch-signal-siginfo-cond.exp
catch-signal.c
catch-signal.exp
catch-syscall.c
catch-syscall.exp
charset-malloc.c
charset.c
charset.exp
checkpoint-ns.exp
checkpoint.c
checkpoint.exp
chng-syms.c
chng-syms.exp
code_elim1.c
code_elim2.c
code_elim.exp
code-expr.exp
command-line-input.exp
commands.exp
compare-sections.c
compare-sections.exp
completion.exp
complex.c
complex.exp
comprdebug.exp
cond-eval-mode.c
cond-eval-mode.exp
cond-expr.exp
condbreak-call-false.c
condbreak-call-false.exp
condbreak.exp
consecutive-step-over.c
consecutive-step-over.exp
consecutive.c
consecutive.exp
constvars.c
constvars.exp
continue-all-already-running.c
continue-all-already-running.exp
coredump-filter.c
coredump-filter.exp
corefile.exp
coremaker.c
ctxobj-f.c
ctxobj-m.c
ctxobj-v.c
ctxobj.exp
cursal.c
cursal.exp
cvexpr.c
cvexpr.exp
d10vovly.c
dbx.exp
dcache-line-read-error.c
dcache-line-read-error.exp
debug-expr.c
debug-expr.exp
default.exp
define.exp
del.c
del.exp
detach.exp
dfp-exprs.exp
dfp-test.c
dfp-test.exp
disabled-location.c
disabled-location.exp
disasm-end-cu-1.c
disasm-end-cu-2.c
disasm-end-cu.exp
disasm-optim.c
disasm-optim.exp
disasm-optim.h
disasm-optim.S
display.c
display.exp
dmsym_main.c
dmsym.c
dmsym.exp
double-prompt-target-event-error.c
double-prompt-target-event-error.exp
dprintf-bp-same-addr.c
dprintf-bp-same-addr.exp
dprintf-detach.c
dprintf-detach.exp
dprintf-next.c
dprintf-next.exp
dprintf-non-stop.c
dprintf-non-stop.exp
dprintf-pending.c
dprintf-pending.exp
dprintf-pendshr.c
dprintf.c
dprintf.exp
dso2dso-dso1.c
dso2dso-dso1.h
dso2dso-dso2.c
dso2dso-dso2.h
dso2dso.c
dso2dso.exp
dtrace-probe.c
dtrace-probe.d
dtrace-probe.exp
dump.c
dump.exp
dup-sect.exp
dup-sect.S
duplicate-bp.c
duplicate-bp.exp
echo.exp
empty_exe.exp
ena-dis-br.exp Make breakpoint/location number parsing error output consistent 2017-11-07 11:07:19 +00:00
ending-run.c
ending-run.exp
enum_cond.c
enum_cond.exp
enumval.c
enumval.exp
environ.exp
eu-strip-infcall.c
eu-strip-infcall.exp
eval-avoid-side-effects.exp
eval-skip.exp
eval.exp
examine-backward.c
examine-backward.exp
exe-lock.exp
exec-invalid-sysroot.exp
execd-prog.c
execl-update-breakpoints.c
execl-update-breakpoints.exp
execution-termios.c
execution-termios.exp
exitsignal.exp
expand-psymtabs.c
expand-psymtabs.exp
exprs.c
exprs.exp
fileio.c
fileio.exp
filesym.c
filesym.exp
find-unmapped.c
find-unmapped.exp
find.c
find.exp
finish.exp
fixsection.c
fixsection.exp
fixsectshr.c
float128.c
float128.exp
float.c
float.exp
floatn.c
floatn.exp
foll-exec-mode.c
foll-exec-mode.exp
foll-exec.c
foll-exec.exp
foll-fork.c
foll-fork.exp
foll-vfork-exit.c
foll-vfork.c
foll-vfork.exp
foo.c
fork-running-state.c
fork-running-state.exp
fortran-sym-case.c
fortran-sym-case.exp
frame-args.c
frame-args.exp
freebpcmd.c
freebpcmd.exp
fullname.c
fullname.exp
fullpath-expand-func.c
fullpath-expand.c
fullpath-expand.exp
func-ptr.c
func-ptr.exp
func-ptrs.c
func-ptrs.exp
funcargs.c
funcargs.exp
gcore-buffer-overflow.c
gcore-buffer-overflow.exp
gcore-relro-lib.c
gcore-relro-main.c
gcore-relro-pie.c
gcore-relro-pie.exp
gcore-relro.exp
gcore.c
gcore.exp
gdb1056.exp
gdb1090.c
gdb1090.exp
gdb1250.c
gdb1250.exp
gdb1555-main.c
gdb1555.c
gdb1555.exp
gdb1821.c
gdb1821.exp
gdb11530.c
gdb11530.exp
gdb11531.c
gdb11531.exp
gdb_history
gdb-sigterm-2.exp
gdb-sigterm.c
gdb-sigterm.exp
gdbhistsize-history.exp
gdbindex-stabs-dwarf.c
gdbindex-stabs.c
gdbindex-stabs.exp
gdbinit-history.exp
gdbvars.c
gdbvars.exp
global-var-nested-by-dso-solib1.c
global-var-nested-by-dso-solib2.c
global-var-nested-by-dso.c
global-var-nested-by-dso.exp
gnu_vector.c
gnu_vector.exp
gnu-debugdata.c
gnu-debugdata.exp
gnu-ifunc-lib.c
gnu-ifunc.c
gnu-ifunc.exp
grbx.c
hashline1.exp
hashline2.exp
hashline3.exp
hbreak2.exp
hbreak-in-shr-unsupported-shr.c
hbreak-in-shr-unsupported.c
hbreak-in-shr-unsupported.exp
hbreak-unmapped.c
hbreak-unmapped.exp
hbreak.c
hbreak.exp
help.exp
history-duplicates.exp
hook-stop.c
hook-stop.exp
huge.c
huge.exp
ifelse.exp
included.c
included.exp
included.h
infcall-exec2.c
infcall-exec.c
infcall-exec.exp
infcall-input.c
infcall-input.exp
inferior-died.c
inferior-died.exp
infnan.c
infnan.exp
info-fun-solib.c
info-fun.c
info-fun.exp
info-macros.c
info-macros.exp
info-os.c
info-os.exp
info-proc.exp
info-program.exp
info-shared-solib1.c
info-shared-solib2.c
info-shared.c
info-shared.exp
info-target.exp
infoline.c
infoline.exp
int-type.c
interact.exp
interp.c
interp.exp
interrupt-noterm.c
interrupt-noterm.exp
interrupt.c
interrupt.exp
jit-attach-pie.c
jit-attach-pie.exp
jit-dlmain.c
jit-main.c
jit-protocol.h
jit-reader.exp
jit-simple-dl.c
jit-simple-jit.c
jit-simple.c
jit-simple.exp
jit-so.exp
jit-solib.c
jit.exp
jithost.c
jithost.h
jitreader.c
jump.c
jump.exp
kill-after-signal.c
kill-after-signal.exp
kill-detach-inferiors-cmd.c
kill-detach-inferiors-cmd.exp
killed-outside.c
killed-outside.exp
label.c
label.exp
langs0.c
langs1.c
langs1.f
langs2.c
langs2.cxx
langs.exp
ldbl_e308.c
ldbl_e308.exp
line-symtabs.c
line-symtabs.exp
line-symtabs.h
lineinc1.h
lineinc2.h
lineinc3.h
lineinc.c
lineinc.exp
linespecs.exp
list0.c
list0.h
list1.c
list-ambiguous0.c
list-ambiguous1.c
list-ambiguous.exp
list.exp
logical.exp
long_long.c
long_long.exp
long-inferior-output.c
long-inferior-output.exp
longest-types.c
longest-types.exp
longjmp.c
longjmp.exp
m32r.ld
m32rovly.c
macscp1.c
macscp2.h
macscp3.h
macscp4.h
macscp.exp
maint.exp
max-value-size.c
max-value-size.exp
memattr.c
memattr.exp
mips_pro.c
mips_pro.exp
miscexprs.c
miscexprs.exp
morestack.c
morestack.exp
moribund-step.exp
multi-forks.c
multi-forks.exp
multi-line-starts-subshell.exp
nested-addr.c
nested-addr.exp
nested-subp1.c
nested-subp1.exp
nested-subp2.c
nested-subp2.exp
nested-subp3.c
nested-subp3.exp
new-ui-echo.c
new-ui-echo.exp
new-ui-pending-input.c
new-ui-pending-input.exp
new-ui.c
new-ui.exp Fix racy test in gdb.base/new-ui.exp 2017-10-24 23:22:56 +01:00
nextoverexit.c
nextoverexit.exp
nodebug.c
nodebug.exp
nofield.c
nofield.exp
noreturn-finish.c
noreturn-finish.exp
noreturn-return.c
noreturn-return.exp
normal.c
nostdlib.c
nostdlib.exp
offsets.c
offsets.exp
opaque0.c
opaque1.c
opaque.exp
overlays.c
overlays.exp
ovlymgr.c
ovlymgr.h
page.exp
paginate-after-ctrl-c-running.c
paginate-after-ctrl-c-running.exp
paginate-bg-execution.c
paginate-bg-execution.exp
paginate-execution-startup.c
paginate-execution-startup.exp
paginate-inferior-exit.c
paginate-inferior-exit.exp
pc-fp.c
pc-fp.exp
pending.c
pending.exp
pendshr.c
permissions.exp
pi.txt
pie-execl.c
pie-execl.exp
pointers.c
pointers.exp
pr10179-a.c
pr10179-b.c
pr10179.exp
pr11022.c
pr11022.exp
prelink-lib.c
prelink.c
prelink.exp
print-file-var-lib1.c
print-file-var-lib2.c
print-file-var-main.c
print-file-var.exp
print-symbol-loading-lib.c
print-symbol-loading-main.c
print-symbol-loading.exp
printcmds.c
printcmds.exp
prologue-include.c
prologue-include.exp
prologue-include.h
prologue.c
prologue.exp
psymtab1.c
psymtab2.c
psymtab.exp
ptr-typedef.c
ptr-typedef.exp
ptype1.c
ptype.c
ptype.exp
quit-live.c
quit-live.exp
quit.exp Fix 'gdb.base/quit.exp hangs forever' if the test fails 2017-10-20 15:33:57 +01:00
radix.exp
random-signal.c
random-signal.exp
randomize.c
randomize.exp
range-stepping.c
range-stepping.exp
readline-ask.c
readline-ask.exp
readline-ask.inputrc
readline.exp
realname-expand-real.c
realname-expand.c
realname-expand.exp
recpar.c
recpar.exp
recurse.c
recurse.exp
relational.exp
relativedebug.c
relativedebug.exp
relocate.c
relocate.exp
remote.c
remote.exp
remotetimeout.exp
reread1.c
reread2.c
reread-readsym.c
reread-readsym.exp
reread.exp
restore.c
restore.exp
return2.c
return2.exp
return-nodebug1.c
return-nodebug.c
return-nodebug.exp
return.c
return.exp
run-after-attach.c
run-after-attach.exp
run.c
save-bp.c
save-bp.exp
savedregs.c
savedregs.exp
scope0.c
scope1.c
scope.exp
sect-cmd.exp
segv.c
sep-proc.c
sep.c
sep.exp
sepdebug2.c
sepdebug.c
sepdebug.exp
sepsymtab.c
sepsymtab.exp
set-cwd.c
set-cwd.exp
set-inferior-tty.c
set-inferior-tty.exp
set-lang-auto.exp
set-noassign.exp
setshow.c
setshow.exp
setvar.c
setvar.exp
share-env-with-gdbserver.c
share-env-with-gdbserver.exp
shell.exp
shlib-call.exp
shmain.c
shr1.c
shr2.c
shreloc1.c
shreloc2.c
shreloc.c
shreloc.exp
sigall.c
sigall.exp
sigaltstack.c
sigaltstack.exp
sigbpt.c
sigbpt.exp
sigchld.c
sigchld.exp
siginfo-addr.c
siginfo-addr.exp
siginfo-infcall.c
siginfo-infcall.exp
siginfo-obj.c
siginfo-obj.exp
siginfo-thread.c
siginfo-thread.exp
siginfo.c
siginfo.exp
signals-state-child.c
signals-state-child.exp
signals.c
signals.exp
signest.c
signest.exp
signull.c
signull.exp
sigrepeat.c
sigrepeat.exp
sigstep.c
sigstep.exp
sizeof.c
sizeof.exp
skip1.c
skip-solib-lib.c
skip-solib-main.c
skip-solib.exp
skip.c
skip.exp
so-disc-shr.c
so-impl-ld.c
so-impl-ld.exp
solib1.c
solib-corrupted.exp
solib-disc.c
solib-disc.exp
solib-display-lib.c
solib-display-main.c
solib-display.exp
solib-nodir.exp
solib-overlap-lib.c
solib-overlap-main.c
solib-overlap.exp
solib-search-lib1.c
solib-search-lib2.c
solib-search.c
solib-search.exp
solib-search.h
solib-symbol-lib.c
solib-symbol-main.c
solib-symbol.exp
solib-weak.c
solib-weak.exp
source-dir.exp
source-error.gdb
source-execution.c
source-execution.exp
source-execution.gdb
source-nofile.gdb
source-test.gdb
source.exp
spu.ld
ss.h
sss-bp-on-user-bp-2.c
sss-bp-on-user-bp-2.exp
sss-bp-on-user-bp.c
sss-bp-on-user-bp.exp
stack-checking.c
stack-checking.exp
stale-infcall.c
stale-infcall.exp
stap-probe.c
stap-probe.exp
start.c
start.exp
starti.c
starti.exp
startup-with-shell.c
startup-with-shell.exp Fix unstable test names in gdb.base/startup-with-shell.exp 2017-10-24 10:52:09 +01:00
statistics.exp
step-break.c
step-break.exp
step-bt.c
step-bt.exp
step-line.c
step-line.exp
step-line.inp
step-over-clone.c
step-over-exit.c
step-over-exit.exp
step-over-fork.c
step-over-no-symbols.exp
step-over-syscall.exp
step-over-vfork.c
step-resume-infcall.c
step-resume-infcall.exp
step-sw-breakpoint-adjust-pc.c
step-sw-breakpoint-adjust-pc.exp
step-symless.c
step-symless.exp
step-test.c
step-test.exp
store.c
store.exp
structs2.c
structs2.exp
structs3.c
structs3.exp
structs.c
structs.exp
subst.exp
sum.c
sym-file-lib.c
sym-file-loader.c
sym-file-loader.h
sym-file-main.c
sym-file.exp
symbol-alias2.c
symbol-alias.c
symbol-alias.exp
symbol-without-target_section.c
symbol-without-target_section.exp
symtab-search-order-1.c
symtab-search-order-shlib-1.c
symtab-search-order.c
symtab-search-order.exp
term.c
term.exp
testenv.c
testenv.exp
trace-commands.exp
twice.c
twice.exp
type-opaque-lib.c
type-opaque-main.c
type-opaque.exp
ui-redirect.exp
unload.c
unload.exp
unloadshr2.c
unloadshr.c
until-nodebug.exp
until.exp
unwindonsignal.c
unwindonsignal.exp
valgrind-db-attach.c
valgrind-db-attach.exp
valgrind-disp-step.c
valgrind-disp-step.exp
valgrind-infcall.c
valgrind-infcall.exp
value-double-free.c
value-double-free.exp
varargs.c
varargs.exp
vdso-warning.c
vdso-warning.exp
vforked-prog.c
vla-datatypes.c
vla-datatypes.exp
vla-ptr.c
vla-ptr.exp
vla-sideeffect.c
vla-sideeffect.exp
vla-stub-define.c
vla-stub.c
vla-stub.exp
volatile.exp
watch_thread_num.c
watch_thread_num.exp
watch-bitfields.c
watch-bitfields.exp
watch-cond-infcall.c
watch-cond-infcall.exp
watch-cond.c
watch-cond.exp
watch-non-mem.c
watch-non-mem.exp
watch-read.c
watch-read.exp
watch-vfork.c
watch-vfork.exp
watchpoint-cond-gone-stripped.c
watchpoint-cond-gone.c
watchpoint-cond-gone.exp
watchpoint-delete.c
watchpoint-delete.exp
watchpoint-hw-hit-once.c
watchpoint-hw-hit-once.exp
watchpoint-hw.c
watchpoint-hw.exp
watchpoint-reuse-slot.c
watchpoint-reuse-slot.exp
watchpoint-solib-shr.c
watchpoint-solib.c
watchpoint-solib.exp
watchpoint-stops-at-right-insn.c
watchpoint-stops-at-right-insn.exp
watchpoint.c
watchpoint.exp
watchpoints.c
watchpoints.exp
wchar.c
wchar.exp
weaklib1.c
weaklib2.c
whatis-exp.exp
whatis-ptype-typedefs.c
whatis-ptype-typedefs.exp
whatis.c
whatis.exp
wrong_frame_bt_full-main.c
wrong_frame_bt_full-opaque.c
wrong_frame_bt_full.exp