binutils-gdb/gdb/testsuite/gdb.base
Patrick Palka ebfd00d210 Fix PR gdb/17820
This patch is a comprehensive fix for PR 17820 which reports that
using "set history size unlimited" inside one's gdbinit file doesn't
really work.

There are three small changes in this patch.  The most important change
this patch makes is to decode the argument of the "size" subcommand
using add_setshow_zuinteger_unlimited_cmd() instead of using
add_setshow_uinteger_cmd().  The new decoder takes an int * and maps
unlimited to -1 whereas the old decoder takes an unsigned int * and maps
unlimited to UINT_MAX.  Using the new decoder simplifies our handling of
unlimited and makes it easier to interface with readline which itself
expects a signed-int history size.

The second change is the factoring of the [stifle|unstifle]_history logic
into a common function which is now used by both init_history() and
set_history_size_command().  This is technically the change that fixes
the PR itself.

Thirdly, this patch initializes history_size_setshow_var to -2 to mean
that the variable has not been set yet.  Now init_history() tests for -2
instead of 0 to determine whether to give the variable a default value.
This means that having "set history size 0" in one's gdbinit file will
actually keep the history size at 0 and not reset it to 256.

gdb/ChangeLog:

	PR gdb/17820
	* top.c (history_size_setshow_var): Change type to signed.
	Initialize to -2.  Update documentation.
	(set_readline_history_size): Define.
	(set_history_size_command): Use it.  Remove logic for handling
	out-of-range sizes.
	(init_history): Use set_readline_history_size().  Test for a
	value of -2 instead of 0 when determining whether to set a
	default history size.
	(init_main): Decode the argument of the "size" command as a
	zuinteger_unlimited.

gdb/testsuite/ChangeLog:

	PR gdb/17820
	* gdb.base/gdbinit-history.exp: New test.
	* gdb.base/gdbinit-history/unlimited/.gdbinit: New file.
	* gdb.base/gdbinit-history/zero/.gdbinit: New file.
2015-05-13 09:26:54 -04:00
..
comp-dir/subdir
gdbinit-history Fix PR gdb/17820 2015-05-13 09:26:54 -04:00
a2-run.exp
advance.c
advance.exp
alias.exp
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
assign.exp
async-shell.c
async-shell.exp
async.c
async.exp
attach2.c
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 Fix three test failures with extended remote targets 2015-04-20 11:36:02 +01:00
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
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 Harden gdb.base/bp-permanent.exp 2015-04-14 09:25:27 -03:00
branches.c
break1.c
break-always.c
break-always.exp Handle memory write errors on gdb.base/break-always.exp 2015-04-29 12:09:40 -03:00
break-caller-line.c
break-caller-line.exp
break-entry.exp
break-idempotent.c
break-idempotent.exp Skip setting HW watchpoint if skip_hw_watchpoint_multi_tests in gdb.base/break-idempotent.exp 2015-04-30 10:08:10 +01:00
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-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.c
catch-signal.exp
catch-syscall.c
catch-syscall.exp
charset-malloc.c
charset.c
charset.exp
checkpoint.c
checkpoint.exp
chng-syms.c
chng-syms.exp
code_elim1.c
code_elim2.c
code_elim.exp
code-expr.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 Fix PR 18208: update /proc/pid/coredump_filter by c code 2015-05-08 12:37:48 +01:00
coredump-filter.exp Fix coredump-filter.exp by correctly unsetting array 2015-05-08 13:19:19 -04:00
corefile.exp
coremaker2.c
coremaker.c
ctxobj-f.c
ctxobj-m.c
ctxobj-v.c
ctxobj.exp
cursal.c
cursal.exp
cvexpr.c
cvexpr.exp
d10v.ld
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
disp-step-fork.c
disp-step-syscall.exp
disp-step-vfork.c
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
dtrace-probe.c
dtrace-probe.d
dtrace-probe.exp
dump.c
dump.exp gdb: Add support for dumping to verilog hex format. 2015-04-24 22:49:59 +01:00
dup-sect.exp
dup-sect.S
duplicate-bp.c
duplicate-bp.exp
echo.exp
empty_exe.exp
ena-dis-br.exp
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
exe-lock.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
float.c
float.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
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.c
gdb-sigterm.exp
gdbindex-stabs-dwarf.c
gdbindex-stabs.c
gdbindex-stabs.exp
gdbinit-history.exp Fix PR gdb/17820 2015-05-13 09:26:54 -04:00
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
hook-stop-continue.c
hook-stop-continue.exp
hook-stop-frame.c
hook-stop-frame.exp
huge.c
huge.exp
ifelse.exp
included.c
included.exp
included.h
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-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 Fix gdb.base/interrupt.exp racy fail against gdbserver 2015-04-23 15:48:27 +01:00
jit-dlmain.c
jit-main.c
jit-simple.c
jit-simple.exp
jit-so.exp
jit-solib.c
jit.exp
jump.c
jump.exp
kill-after-signal.c
kill-after-signal.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.exp
logical.exp
long_long.c
long_long.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
Makefile.in
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
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
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
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 Skip gdb.base/relativedebug.exp if libc doesn't have debug info 2015-04-30 09:55:06 +01:00
relocate.c
relocate.exp
remote.c
remote.exp
remotetimeout.exp
reread1.c
reread2.c
reread.exp
restore.c
restore.exp
return2.c
return2.exp
return-nodebug1.c
return-nodebug.c
return-nodebug.exp
return.c
return.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-lang-auto.exp
set-noassign.exp
setshow.c
setshow.exp
setvar.c
setvar.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.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
so-indr-cl.c
so-indr-cl.exp
solib1.c
solib2.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
solib.c
solib.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
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-no-symbols.exp
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-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
tui-layout.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-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 Skip watch_thread_num.exp on targets without access watchpoints 2015-05-08 12:50:47 +02:00
watch-bitfields.c
watch-bitfields.exp Use software watchpoints if hardware watchpoints are not available when testing gdb.base/watch-bitfields.exp 2015-04-29 12:22:24 -03:00
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 [arm] watchpoint-reuse-slot.exp: skip setting HW points on some address 2015-04-10 16:23:13 +01:00
watchpoint-solib-shr.c
watchpoint-solib.c
watchpoint-solib.exp Increase timeout in watch-bitfields.exp for software watchpoint 2015-04-15 12:46:58 +01:00
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.c
whatis.exp