mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
a812315168
This is in preparation for providing a GDB/MI equivalent of the `info tasks' command. The previous implementation was using various printf commands to generate the command output, which does not work at all if we want to use that same code to generate the result for that new GDB/MI command. This patch thus re-implements the `info tasks' command (with no arguments) in a way that makes it GDB/MI friendly. There is an additional hicup, which is the fact that the `info tasks' command displays a completely different type of output when a task ID is given. For instance: (gdb) info task 2 Ada Task: 0x644d20 Name: my_callee Thread: 0 LWP: 0x5809 Parent: 1 (main_task) Base Priority: 48 State: Blocked in accept or select with terminate The above output is better when in CLI mode, but really not what we want when in GDB/MI mode. In GDB/MI mode, we want to follow what the `-thread-info' command does when a task-id is given as an argument, which is to produce the same table, but with only one element/task in it. For compatibility as well as practical reasons, we do not want to change the output of the `info task TASKNO' command when in CLI mode. But it's easy to preserve this behavior while providing the desirable output when in GDB/MI mode. For this, the function used to generated the `info tasks' output has been enhanced to take an argument interpreted as a string. The CLI command knows to never provide that argument, while the GDB/MI command will pass one if provided by the user. gdb/ChangeLog: * ada-tasks.c (print_ada_task_info): New function, merging short_task_info and info_tasks together. Reimplement using ui-out instead of printing to stdout directly. Move the code building and checking the task list here, instead of leaving it in info_tasks_command. (info_task): Move the code building and checking the task list here, instead of leaving it in info_tasks_command. (info_tasks_command): Delete code building and checking the task list - moved elsewhere. Update calls to info_tasks and info_task. One of the minor changes the switch caused is the introduction of a space between the "current" column, and the task "ID" column, which wasn't there before. This matches what we do in the "info threads" command, so I kept that change. This required an adjustment in the testsuite, however... gdb/testsuite/ChangeLog: * gdb.ada/tasks.exp: Make the expected output for the `info tasks' tests more resilient to spacing changes. |
||
---|---|---|
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.