binutils-gdb/intro.texi

454 lines
14 KiB
Plaintext
Raw Normal View History

\input texinfo
@c $Id$
@setfilename intro.info
@settitle Introduction
@iftex
@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
@c implements Cygnus modifications to the texinfo manual style.
@input texiplus
@c The include file "smpklug.texi" is a kluge to deal with local
@c document production issues at Cygnus; it's safe to comment out this
@c line if you don't have (or don't want) the file.
@input smpklug.texi
@smallbook
@cropmarks
@finalout
@c We don't actually want a titlepage; HEADINGSon is usually called by
@c @end titlepage to turn on footers and headers.
@setchapternewpage odd
@HEADINGSon
@end iftex
@node Top,,,
@unnumbered Introduction
This Developer's Kit puts at your disposal, in a single coordinated
and tested release, some of the best software development tools
available:
@table @t
@item gcc
C compiler
@item g++
C++ compiler
@item gdb
Debugger
@item make
Automates building and installing your programs
@item gprof
Performance analyzer
@item byacc
Parser generator
@item flex
Fast lexical analyzer generator
@item libg++.a
Class library for C++
@item send_pr
Script to send structured problem reports to Cygnus
@item diff
Compares source files
@item patch
Installs source fixes
@item info
@itemx makeinfo
Online documentation tools
@item texinfo.tex
@itemx texindex
Documentation printing tools
@end table
On most host systems, the following are also included (to see if
they are available on your host, @pxref{Contents, Release Contents,
Release Contents, README.info, Installation Notes}).
@table @t
@item gas
Assembler
@item ld
Linker
@item ar
Manages object code archives
@item nm
Lists object file symbol tables
@item objdump
Displays object file information
@item ranlib
Generates archive index
@item size
Lists section and total sizes
@item strip
Discards symbols
@end table
These tools are free software; most of them are from the GNU project,
produced by the Free Software Foundation (FSF). ``GNU'' is the name of
the FSF's evolving system (in speech, the `G' is sounded). Cygnus
Support collaborates with the FSF in developing these tools. In this,
our @dfn{Progressive} product, we've assembled the most recent forms of
the development tools, tested them, made sure they work well together,
made them easy to install---the installation tape comes with binaries
already compiled for your system---and made them easy to reconfigure and
recompile from source.
Cygnus Support exists to help our clients exploit their freedom in
using, adapting, or enhancing this software. @xref{Cygnus,,About Cygnus
Support}, for more information.
@page
@node Copying,,,
@section Free Software
If you find our Developer's Kit useful, please feel free to give or sell
copies of the software and documentation to anyone you like.
Cygnus products are @dfn{free software}, protected by the @sc{gnu} General
Public License (GPL). The GPL gives you the freedom to copy or adapt any
program it licenses---but every person getting a copy also gets with it the
freedom to modify that copy (which means that they must get access to
the source code), and the freedom to distribute further copies. Typical
software companies use copyrights to limit your freedoms; the GPL is
designed to preserve your freedoms.
Fundamentally, the General Public License is a license which grants you
these freedoms, and only imposes restrictions to ensure that no one can
take these freedoms away from anyone else.
For full details, see the @strong{LICENSE} section in this manual
set.
@page
@node Manuals,,,
@section Manuals
@noindent
These printed manuals are included in your Cygnus Progressive Release:
@display
@cite{Using the @sc{gnu} C Compiler}
@cite{The C Preprocessor}
@cite{GDB: The @sc{gnu} Source-Level Debugger}
@cite{Using @code{as}: The @sc{gnu} Assembler}
@cite{The @sc{gnu} Binary Utilities}
@cite{@code{gld}, the @sc{gnu} Linker}
@cite{@sc{gnu} Make: A Program for Directing Recompilation}
@cite{User's Guide to the @sc{GNU} C++ Class Library}
@end display
The manuals are designed for easy online browsing (@pxref{Info,,Online
Documentation}). For online use, the accompanying software distribution
tape includes all the printed manuals, and also the following documents:
@table @emph
@item FLEX: A Fast Lexical Analyzer Generator
Generates lexical analyzers suitable for GCC and other compilers.
@item Info: Documentation Browsing System
Full details on the @code{info} browser.
@item Texinfo: The @sc{gnu} Documentation Format
How you can use @TeX{} to print these manuals, and how to write your own
manuals in this style.
@item Using and Porting @sc{gnu cc}
Detailed information about what's needed to put @sc{gnu cc} on different
platforms, or to modify @sc{gnu cc}. Also includes all the
information in the printed manual @cite{Using the @sc{gnu} C Compiler}.
@end table
@noindent
Finally, @code{man} pages are included for all the programs in the release.
You have the freedom to copy the manuals, like the software they cover;
each manual's copyright statement includes the necessary permissions.
The manuals themselves are also free software, and the source for them
is also available on the tape.
@node Info,,,
@section Using Online Documentation
You can browse through the online documentation using either @sc{gnu} Emacs,
or the program @code{info} included on the accompanying tape.
Online, the manuals are organized into @dfn{nodes}, which correspond to
the chapters and sections of a printed book. You can follow them in
sequence, if you wish, just like in the printed book---but there are
also other choices. The documents have menus that let you go quickly to
the node that has the information you need. @code{info} has ``hot''
references; if one section refers to another, you can tell @code{info}
to take you immediately to that other section---and you can get back
again easily to take up your reading where you left off. Naturally, you
can also search for particular words or phrases.
The best way to get started with the online documentation system is to
run the browser @code{info}. After the Progressive Release is installed on
your system, you can get into @code{info} by just typing its name---no
options or arguments are necessary---at your shell's prompt (shown as
@samp{eg%} here):
@example
eg% info
@end example
@noindent
@code{info} will display its first screen, a menu of the documentation
available, and will await your input. Typing the single letter
@example
h
@end example
@noindent
requests a tutorial, designed to teach you how to use @code{info}.
If you already use Emacs, you may want to get into the documentation
browsing mode, instead, by typing @kbd{C-h i} inside Emacs.
You can get out of @code{info} at any time by typing the single letter
@kbd{q}.
@page
Here is a summary of all the @code{info} commands; @code{info} itself
can display a summary like this at any time, when you type the single
character @kbd{?}.
@smallexample
@cartouche
h @r{Invoke the Info tutorial.}
q @r{Quit Info}
@i{Selecting other nodes:}
n @r{Move to the ``next'' node of this node.}
p @r{Move to the ``previous'' node of this node.}
u @r{Move ``up'' from this node.}
m @r{Pick menu item specified by name (or abbreviation).}
@r{Picking a menu item moves to the corresponding node.}
f @r{Follow a cross reference. Reads name of reference.}
l @r{Move to the last node you were looking at.}
@i{Moving within a node:}
Space @r{scroll forward a page.}
DEL @r{scroll backward a page.}
b @r{Go to beginning of this node.}
@i{Advanced commands:}
1 @r{Pick first item in node's menu.}
2 - 5 @r{Pick second ... fifth item in node's menu.}
g @r{Move to node specified by name.}
@r{You may include a filename as well, as @code{(@var{FILENAME})@var{NODENAME}}.}
s @r{Search through this Info file for a specified string,}
@r{and select the node in which the next occurrence is found.}
Ctl-p @r{Print the contents of this node using @samp{lpr}.}
@end cartouche
@end smallexample
@page
@node Bugs,,,
@section Reporting Trouble
We've tried to make the programs in your Progressive Release as
trouble-free as possible. If you do encounter trouble, however, we'd
like to be able to diagnose and fix the problem as quickly as possible.
You can help us do that by using the script @code{send_pr} to send us your
problem reports.
@code{send_pr} invokes an editor on a problem report form (after
trying to fill in some fields with reasonable default values). After
you exit the editor, @code{send_pr} sends the filled out form to the
problem report management system (PRMS) at Cygnus Support. You can
use the environment variable @code{EDITOR} to specify what editor to
use (the default is @code{vi}).
@code{send_pr} attempts to send your problem report to Cygnus via
electronic mail. If your site cannot support this, you can still use
the problem report form: use @samp{send_pr -p} to capture a copy of the
blank problem-report form and fill it in. (You can also photocopy the
blank form at the end of this section to fill in.) In either case you
can FAX the problem report to Cygnus at @w{+1 415 322 3270}.
At Cygnus Support, the problem report is assigned a unique number and is
stored in the PRMS database according to its category and your
customer-id. PRMS automatically replies with an acknowledgement, citing
the category and the PR number. As the next step, Cygnus staff inspects
the bugreport (if you've marked your report as high priority, we respond
with an analysis of the problem in less than one business day). We'll
offer a solution as soon as possible, and await your feedback. As a
matter of policy, we do not consider your problem report closed until
you've agreed with a solution we offer.
To ensure that a problem report is handled promptly, it must contain
your (unique) customer-id and one of the available categories, shown as
comments in the problem report form, to identify the problem area. As a
Cygnus Support customer, you can obtain your customer-id by invoking
@code{send_pr} with the @samp{-request-id} option.
@page
@subsection Filling out a problem report
Problem reports are structured so that a program can manage them. When
filling out the form, please remember the following guidelines:
@itemize @bullet
@item
Each PR needs a valid customer-id and category.
@item
Describe only one problem with one PR.
@item
For follow-up mail, use the same subject line as the one in the
automatic acknowledgent. It shows the category, the PR number and the
original synopsis line. This allows Cygnus Support to make sure mail on
the same problem report stays together.
@item
Please try to make the subject or synopsis line as informative
as possible. For misbehaving software, you might use a sentence of
the form ``with input foo, component xyz produces bar''.
@item
You don't need to delete the comment lines while editing the PR form;
this is done by @code{send_pr}. Put your information before or
after the comment.
@end itemize
@page
For full details on @code{send_pr} and the supporting form, see the man
page @code{send_pr}(1). Here is a sample blank problem-report form; if
electronic mail from your site does not reach Cygnus, you can send us
problem reports by photocopying this sample, filling it out, and sending
it by FAX to @w{+1 415 322 3270}.
@iftex
@widen{28pt}
@end iftex
@smallexample
SEND_PR: Choose from the following categories:
SEND_PR:
SEND_PR: bfd binutils bison clib config cvs
SEND_PR: diff doc emacs g++ gas gcc
SEND_PR: gdb grep ispell ld libg++ libiberty
SEND_PR: libiberty make rcs readline send_pr texinfo
SEND_PR: other
SEND_PR:
To: cygnus-bugs@@cygnus.com
Subject:
From:
Reply-To:
X-send-pr-version: send_pr: 1.15
>Customer-Id:
>Originator: <name of the PR author (one line)>
>Organization: <organization of PR author (multiple lines)>
>Confidential: <[ yes | no ] (one line)>
>Synopsis: <synopsis of the problem (one line)>
>Severity: <[ non-critical | serious | critical ] (one line)>
>Priority: <[ low | medium | high ] (one line)>
>Category: <name of the product (one line)>
>Class: <[ sw-bug | doc-bug | change-request | support ] (one line)>
>Release: <release number or tag (one line)>
>Environment:
<machine, os, target, libraries (multiple lines)>
>Description:
<precise description of the problem (multiple lines)>
>How-To-Repeat:
<code/input/activities to reproduce the problem (multiple lines)>
@end smallexample
@iftex
@widen{-28pt}
@end iftex
@page
@node Cygnus,,,
@section About Cygnus Support
Cygnus Support was founded in 1989 to provide commercial support for
free software. Cygnus supplies products and services that benefit
advanced development groups by allowing them to use state-of-the-art
tools without having to maintain them. With Cygnus Support, sites that
once were forced to do their own tool support can recover that valuable
staff time. Former users of proprietary software now may choose
supported free software, combining the advantages of both worlds.
Free software is faster, more powerful, and more portable than its
proprietary counterparts. It evolves faster because users who want to
make improvements are free to do so. Cygnus tracks these
improvements and integrates them into tested, stable versions ready
for commercial use, then backs this software with comprehensive
support.
With Cygnus Support as your partner, you will have the software and
the support you need to meet your business objectives. Cygnus
is intimately familiar with this software from extensive experience
using, debugging, and implementing it. You get direct access to the
most qualified support people: the authors of that software.
We provide up-to-the minute ``progressive'' releases, for those who need
the very latest version---or ``vintage'' releases: stable versions which
have been through extensive use and testing.
Because all our improvements are also free software, you can
distribute them widely within your organization, or to your customers,
without extra cost.
@sp 4
@display
Cygnus Support
814 University Avenue
Palo Alto, CA 94301, USA
+1 415 322 3811
email: @code{info@@cygnus.com}
fax: +1 415 322 3270
@end display
@bye