mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
7f7cc26500
Currently, "set listsize -1" is supposed to mean "unlimited" source lines, but, alas, it doesn't actually work: (gdb) set listsize -1 (gdb) show listsize Number of source lines gdb will list by default is unlimited. (gdb) list 1 (gdb) list 1 (gdb) list 1 (gdb) set listsize 10 (gdb) list 1 1 /* Main function for CLI gdb. 2 Copyright (C) 2002-2013 Free Software Foundation, Inc. 3 4 This file is part of GDB. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3 of the License, or 9 (at your option) any later version. 10 Before this patch: http://sourceware.org/ml/gdb-patches/2012-08/msg00367.html was applied, the "set listsize" command was a var_integer command, and "unlimited" was set with 0. Internally, var_integer maps 0 to INT_MAX case var_integer: { ... if (val == 0 && c->var_type == var_integer) val = INT_MAX; The change in that patch to zuinteger_unlimited command, meant that -1 is left as -1 in the command's control variable (lines_to_list), and the code in source.c isn't expecting that -- it only expects positive numbers. I previously suggested fixing the code and keeping the new behavior, but I found that "set listsize 0" is currently used in the wild, and we do have a bunch of other commands where "0" means unlimited, so I'm thinking that changing this command alone in isolation is not a good idea. So I now strongly prefer reverting back the behavior in 7.6 to the same behavior the command has had since 2006 (0==unlimited, -1=error). Before that, set listsize -1 would be accepted as unlimited as well. After 7.6 is out, in mainline, we can get back to reconsidering changing this command's behavior, if there's a real need for being able to suppress output. For now, let's play it safe. The "list line 1 with unlimited listsize" test in list.exp was originally written years and years ago expecting 0 to mean "no output", but GDB never actually worked that way, even when the tests were written, so the tests had been xfailed then. This patch now adjusts the test to the new behavior, so that the test actually passes, and the xfail is removed. gdb/ 2013-03-28 Pedro Alves <palves@redhat.com> PR gdb/15294 * source.c (_initialize_source): Change back "set listsize" to an integer command. gdb/testsuite/ 2013-03-28 Pedro Alves <palves@redhat.com> PR gdb/15294 * gdb.base/list.exp (set_listsize): Adjust to accept $arg == 0 to mean unlimited instead of $arg < 0. (test_listsize): Remove "listsize of 0 suppresses output" test. Test that "set listsize 0" ends up with an unlimited listsize. gdb/doc/ 2013-03-28 Pedro Alves <palves@redhat.com> PR gdb/15294 * gdb.texinfo (List) <set listsize>: Adjust to document that listsize 0 means no limit, and remove mention of -1. |
||
---|---|---|
bfd | ||
binutils | ||
config | ||
cpu | ||
elfcpp | ||
etc | ||
gas | ||
gdb | ||
gold | ||
gprof | ||
include | ||
intl | ||
ld | ||
libdecnumber | ||
libiberty | ||
opcodes | ||
readline | ||
sim | ||
texinfo | ||
.cvsignore | ||
.gitignore | ||
ChangeLog | ||
compile | ||
config-ml.in | ||
config.guess | ||
config.rpath | ||
config.sub | ||
configure | ||
configure.ac | ||
COPYING | ||
COPYING3 | ||
COPYING3.LIB | ||
COPYING.LIB | ||
COPYING.LIBGLOSS | ||
COPYING.NEWLIB | ||
depcomp | ||
djunpack.bat | ||
install-sh | ||
libtool.m4 | ||
lt~obsolete.m4 | ||
ltgcc.m4 | ||
ltmain.sh | ||
ltoptions.m4 | ||
ltsugar.m4 | ||
ltversion.m4 | ||
MAINTAINERS | ||
Makefile.def | ||
Makefile.in | ||
Makefile.tpl | ||
makefile.vms | ||
missing | ||
mkdep | ||
mkinstalldirs | ||
move-if-change | ||
README | ||
README-maintainer-mode | ||
setup.com | ||
src-release | ||
symlink-tree | ||
ylwrap |
README for GNU development tools This directory contains various GNU compilers, assemblers, linkers, debuggers, etc., plus their support routines, definitions, and documentation. If you are receiving this as part of a GDB release, see the file gdb/README. If with a binutils release, see binutils/README; if with a libg++ release, see libg++/README, etc. That'll give you info about this package -- supported targets, how to use it, how to report bugs, etc. It is now possible to automatically configure and build a variety of tools with one command. To build all of the tools contained herein, run the ``configure'' script here, e.g.: ./configure make To install them (by default in /usr/local/bin, /usr/local/lib, etc), then do: make install (If the configure script can't determine your type of computer, give it the name as an argument, for instance ``./configure sun4''. You can use the script ``config.sub'' to test whether a name is recognized; if it is, config.sub translates it to a triplet specifying CPU, vendor, and OS.) If you have more than one compiler on your system, it is often best to explicitly set CC in the environment before running configure, and to also set CC when running make. For example (assuming sh/bash/ksh): CC=gcc ./configure make A similar example using csh: setenv CC gcc ./configure make Much of the code and documentation enclosed is copyright by the Free Software Foundation, Inc. See the file COPYING or COPYING.LIB in the various directories, for a description of the GNU General Public License terms under which you can copy the files. REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info on where and how to report problems.