summaryrefslogtreecommitdiffstats
path: root/upstream/opensuse-tumbleweed/man1/gdb.1
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/opensuse-tumbleweed/man1/gdb.1')
-rw-r--r--upstream/opensuse-tumbleweed/man1/gdb.1428
1 files changed, 428 insertions, 0 deletions
diff --git a/upstream/opensuse-tumbleweed/man1/gdb.1 b/upstream/opensuse-tumbleweed/man1/gdb.1
new file mode 100644
index 00000000..f72f3ba8
--- /dev/null
+++ b/upstream/opensuse-tumbleweed/man1/gdb.1
@@ -0,0 +1,428 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "GDB 1"
+.TH GDB 1 2024-02-27 gdb- "GNU Development Tools"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+gdb \- The GNU Debugger
+.SH SYNOPSIS
+.IX Header "SYNOPSIS"
+gdb [OPTIONS] [\fIprog\fR|\fIprog\fR \fIprocID\fR|\fIprog\fR \fIcore\fR]
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+The purpose of a debugger such as GDB is to allow you to see what is
+going on "inside" another program while it executes \-\- or what another
+program was doing at the moment it crashed.
+.PP
+GDB can do four main kinds of things (plus other things in support of
+these) to help you catch bugs in the act:
+.IP \(bu 4
+Start your program, specifying anything that might affect its behavior.
+.IP \(bu 4
+Make your program stop on specified conditions.
+.IP \(bu 4
+Examine what has happened, when your program has stopped.
+.IP \(bu 4
+Change things in your program, so you can experiment with correcting the
+effects of one bug and go on to learn about another.
+.PP
+You can use GDB to debug programs written in C, C++, Fortran and
+Modula\-2.
+.PP
+GDB is invoked with the shell command \f(CW\*(C`gdb\*(C'\fR. Once started, it reads
+commands from the terminal until you tell it to exit with the GDB
+command \f(CW\*(C`quit\*(C'\fR or \f(CW\*(C`exit\*(C'\fR. You can get online help from GDB itself
+by using the command \f(CW\*(C`help\*(C'\fR.
+.PP
+You can run \f(CW\*(C`gdb\*(C'\fR with no arguments or options; but the most
+usual way to start GDB is with one argument or two, specifying an
+executable program as the argument:
+.PP
+.Vb 1
+\& gdb program
+.Ve
+.PP
+You can also start with both an executable program and a core file specified:
+.PP
+.Vb 1
+\& gdb program core
+.Ve
+.PP
+You can, instead, specify a process ID as a second argument or use option
+\&\f(CW\*(C`\-p\*(C'\fR, if you want to debug a running process:
+.PP
+.Vb 2
+\& gdb program 1234
+\& gdb \-p 1234
+.Ve
+.PP
+would attach GDB to process \f(CW1234\fR. With option \fB\-p\fR you
+can omit the \fIprogram\fR filename.
+.PP
+Here are some of the most frequently needed GDB commands:
+.IP "\fBbreak [\fR\fIfile\fR\fB:][\fR\fIfunction\fR\fB|\fR\fIline\fR\fB]\fR" 4
+.IX Item "break [file:][function|line]"
+Set a breakpoint at \fIfunction\fR or \fIline\fR (in \fIfile\fR).
+.IP "\fBrun [\fR\fIarglist\fR\fB]\fR" 4
+.IX Item "run [arglist]"
+Start your program (with \fIarglist\fR, if specified).
+.IP \fBbt\fR 4
+.IX Item "bt"
+Backtrace: display the program stack.
+.IP "\fBprint\fR \fIexpr\fR" 4
+.IX Item "print expr"
+Display the value of an expression.
+.IP \fBc\fR 4
+.IX Item "c"
+Continue running your program (after stopping, e.g. at a breakpoint).
+.IP \fBnext\fR 4
+.IX Item "next"
+Execute next program line (after stopping); step \fIover\fR any
+function calls in the line.
+.IP "\fBedit [\fR\fIfile\fR\fB:]\fR\fIfunction\fR" 4
+.IX Item "edit [file:]function"
+look at the program line where it is presently stopped.
+.IP "\fBlist [\fR\fIfile\fR\fB:]\fR\fIfunction\fR" 4
+.IX Item "list [file:]function"
+type the text of the program in the vicinity of where it is presently stopped.
+.IP \fBstep\fR 4
+.IX Item "step"
+Execute next program line (after stopping); step \fIinto\fR any
+function calls in the line.
+.IP "\fBhelp [\fR\fIname\fR\fB]\fR" 4
+.IX Item "help [name]"
+Show information about GDB command \fIname\fR, or general information
+about using GDB.
+.IP \fBquit\fR 4
+.IX Item "quit"
+.PD 0
+.IP \fBexit\fR 4
+.IX Item "exit"
+.PD
+Exit from GDB.
+.PP
+For full details on GDB,
+see \fIUsing GDB: A Guide to the GNU Source-Level Debugger\fR,
+by Richard M. Stallman and Roland H. Pesch. The same text is available online
+as the \f(CW\*(C`gdb\*(C'\fR entry in the \f(CW\*(C`info\*(C'\fR program.
+.SH OPTIONS
+.IX Header "OPTIONS"
+Any arguments other than options specify an executable
+file and core file (or process ID); that is, the first argument
+encountered with no
+associated option flag is equivalent to a \fB\-\-se\fR option, and the second,
+if any, is equivalent to a \fB\-c\fR option if it's the name of a file.
+Many options have
+both long and abbreviated forms; both are shown here. The long forms are also
+recognized if you truncate them, so long as enough of the option is
+present to be unambiguous.
+.PP
+The abbreviated forms are shown here with \fB\-\fR and long forms are shown
+with \fB\-\-\fR to reflect how they are shown in \fB\-\-help\fR. However,
+GDB recognizes all of the following conventions for most options:
+.ie n .IP """\-\-option=\fIvalue\fR""" 4
+.el .IP \f(CW\-\-option=\fR\f(CIvalue\fR\f(CW\fR 4
+.IX Item "--option=value"
+.PD 0
+.ie n .IP """\-\-option \fIvalue\fR""" 4
+.el .IP "\f(CW\-\-option \fR\f(CIvalue\fR\f(CW\fR" 4
+.IX Item "--option value"
+.ie n .IP """\-option=\fIvalue\fR""" 4
+.el .IP \f(CW\-option=\fR\f(CIvalue\fR\f(CW\fR 4
+.IX Item "-option=value"
+.ie n .IP """\-option \fIvalue\fR""" 4
+.el .IP "\f(CW\-option \fR\f(CIvalue\fR\f(CW\fR" 4
+.IX Item "-option value"
+.ie n .IP """\-\-o=\fIvalue\fR""" 4
+.el .IP \f(CW\-\-o=\fR\f(CIvalue\fR\f(CW\fR 4
+.IX Item "--o=value"
+.ie n .IP """\-\-o \fIvalue\fR""" 4
+.el .IP "\f(CW\-\-o \fR\f(CIvalue\fR\f(CW\fR" 4
+.IX Item "--o value"
+.ie n .IP """\-o=\fIvalue\fR""" 4
+.el .IP \f(CW\-o=\fR\f(CIvalue\fR\f(CW\fR 4
+.IX Item "-o=value"
+.ie n .IP """\-o \fIvalue\fR""" 4
+.el .IP "\f(CW\-o \fR\f(CIvalue\fR\f(CW\fR" 4
+.IX Item "-o value"
+.PD
+.PP
+All the options and command line arguments you give are processed
+in sequential order. The order makes a difference when the \fB\-x\fR
+option is used.
+.IP \fB\-\-help\fR 4
+.IX Item "--help"
+.PD 0
+.IP \fB\-h\fR 4
+.IX Item "-h"
+.PD
+List all options, with brief explanations.
+.IP \fB\-\-symbols=\fR\fIfile\fR 4
+.IX Item "--symbols=file"
+.PD 0
+.IP "\fB\-s\fR \fIfile\fR" 4
+.IX Item "-s file"
+.PD
+Read symbol table from \fIfile\fR.
+.IP \fB\-\-write\fR 4
+.IX Item "--write"
+Enable writing into executable and core files.
+.IP \fB\-\-exec=\fR\fIfile\fR 4
+.IX Item "--exec=file"
+.PD 0
+.IP "\fB\-e\fR \fIfile\fR" 4
+.IX Item "-e file"
+.PD
+Use \fIfile\fR as the executable file to execute when
+appropriate, and for examining pure data in conjunction with a core
+dump.
+.IP \fB\-\-se=\fR\fIfile\fR 4
+.IX Item "--se=file"
+Read symbol table from \fIfile\fR and use it as the executable
+file.
+.IP \fB\-\-core=\fR\fIfile\fR 4
+.IX Item "--core=file"
+.PD 0
+.IP "\fB\-c\fR \fIfile\fR" 4
+.IX Item "-c file"
+.PD
+Use \fIfile\fR as a core dump to examine.
+.IP \fB\-\-command=\fR\fIfile\fR 4
+.IX Item "--command=file"
+.PD 0
+.IP "\fB\-x\fR \fIfile\fR" 4
+.IX Item "-x file"
+.PD
+Execute GDB commands from \fIfile\fR.
+.IP \fB\-\-eval\-command=\fR\fIcommand\fR 4
+.IX Item "--eval-command=command"
+.PD 0
+.IP "\fB\-ex\fR \fIcommand\fR" 4
+.IX Item "-ex command"
+.PD
+Execute given GDB \fIcommand\fR.
+.IP \fB\-\-init\-eval\-command=\fR\fIcommand\fR 4
+.IX Item "--init-eval-command=command"
+.PD 0
+.IP \fB\-iex\fR 4
+.IX Item "-iex"
+.PD
+Execute GDB \fIcommand\fR before loading the inferior.
+.IP \fB\-\-directory=\fR\fIdirectory\fR 4
+.IX Item "--directory=directory"
+.PD 0
+.IP "\fB\-d\fR \fIdirectory\fR" 4
+.IX Item "-d directory"
+.PD
+Add \fIdirectory\fR to the path to search for source files.
+.IP \fB\-\-nh\fR 4
+.IX Item "--nh"
+Do not execute commands from \fI~/.config/gdb/gdbinit\fR,
+\&\fI~/.gdbinit\fR, \fI~/.config/gdb/gdbearlyinit\fR, or
+\&\fI~/.gdbearlyinit\fR
+.IP \fB\-\-nx\fR 4
+.IX Item "--nx"
+.PD 0
+.IP \fB\-n\fR 4
+.IX Item "-n"
+.PD
+Do not execute commands from any \fI.gdbinit\fR or
+\&\fI.gdbearlyinit\fR initialization files.
+.IP \fB\-\-quiet\fR 4
+.IX Item "--quiet"
+.PD 0
+.IP \fB\-\-silent\fR 4
+.IX Item "--silent"
+.IP \fB\-q\fR 4
+.IX Item "-q"
+.PD
+"Quiet". Do not print the introductory and copyright messages. These
+messages are also suppressed in batch mode.
+.IP \fB\-\-batch\fR 4
+.IX Item "--batch"
+Run in batch mode. Exit with status \f(CW0\fR after processing all the command
+files specified with \fB\-x\fR (and \fI.gdbinit\fR, if not inhibited).
+Exit with nonzero status if an error occurs in executing the GDB
+commands in the command files.
+.Sp
+Batch mode may be useful for running GDB as a filter, for example to
+download and run a program on another computer; in order to make this
+more useful, the message
+.Sp
+.Vb 1
+\& Program exited normally.
+.Ve
+.Sp
+(which is ordinarily issued whenever a program running under GDB control
+terminates) is not issued when running in batch mode.
+.IP \fB\-\-batch\-silent\fR 4
+.IX Item "--batch-silent"
+Run in batch mode, just like \fB\-\-batch\fR, but totally silent. All GDB
+output is supressed (stderr is unaffected). This is much quieter than
+\&\fB\-\-silent\fR and would be useless for an interactive session.
+.Sp
+This is particularly useful when using targets that give \fBLoading section\fR
+messages, for example.
+.Sp
+Note that targets that give their output via GDB, as opposed to writing
+directly to \f(CW\*(C`stdout\*(C'\fR, will also be made silent.
+.IP "\fB\-\-args\fR \fIprog\fR \fB[\fR\fIarglist\fR\fB]\fR" 4
+.IX Item "--args prog [arglist]"
+Change interpretation of command line so that arguments following this
+option are passed as arguments to the inferior. As an example, take
+the following command:
+.Sp
+.Vb 1
+\& gdb ./a.out \-q
+.Ve
+.Sp
+It would start GDB with \fB\-q\fR, not printing the introductory message. On
+the other hand, using:
+.Sp
+.Vb 1
+\& gdb \-\-args ./a.out \-q
+.Ve
+.Sp
+starts GDB with the introductory message, and passes the option to the inferior.
+.IP \fB\-\-pid=\fR\fIpid\fR 4
+.IX Item "--pid=pid"
+Attach GDB to an already running program, with the PID \fIpid\fR.
+.IP \fB\-\-tui\fR 4
+.IX Item "--tui"
+Open the terminal user interface.
+.IP \fB\-\-readnow\fR 4
+.IX Item "--readnow"
+Read all symbols from the given symfile on the first access.
+.IP \fB\-\-readnever\fR 4
+.IX Item "--readnever"
+Do not read symbol files.
+.IP \fB\-\-return\-child\-result\fR 4
+.IX Item "--return-child-result"
+GDB's exit code will be the same as the child's exit code.
+.IP \fB\-\-configuration\fR 4
+.IX Item "--configuration"
+Print details about GDB configuration and then exit.
+.IP \fB\-\-version\fR 4
+.IX Item "--version"
+Print version information and then exit.
+.IP \fB\-\-cd=\fR\fIdirectory\fR 4
+.IX Item "--cd=directory"
+Run GDB using \fIdirectory\fR as its working directory,
+instead of the current directory.
+.IP \fB\-\-data\-directory=\fR\fIdirectory\fR 4
+.IX Item "--data-directory=directory"
+.PD 0
+.IP \fB\-D\fR 4
+.IX Item "-D"
+.PD
+Run GDB using \fIdirectory\fR as its data directory. The data
+directory is where GDB searches for its auxiliary files.
+.IP \fB\-\-fullname\fR 4
+.IX Item "--fullname"
+.PD 0
+.IP \fB\-f\fR 4
+.IX Item "-f"
+.PD
+Emacs sets this option when it runs GDB as a subprocess. It tells
+GDB to output the full file name and line number in a standard,
+recognizable fashion each time a stack frame is displayed (which
+includes each time the program stops). This recognizable format looks
+like two \fB\e032\fR characters, followed by the file name, line number
+and character position separated by colons, and a newline. The
+Emacs-to-GDB interface program uses the two \fB\e032\fR
+characters as a signal to display the source code for the frame.
+.IP "\fB\-b\fR \fIbaudrate\fR" 4
+.IX Item "-b baudrate"
+Set the line speed (baud rate or bits per second) of any serial
+interface used by GDB for remote debugging.
+.IP "\fB\-l\fR \fItimeout\fR" 4
+.IX Item "-l timeout"
+Set timeout, in seconds, for remote debugging.
+.IP \fB\-\-tty=\fR\fIdevice\fR 4
+.IX Item "--tty=device"
+Run using \fIdevice\fR for your program's standard input and output.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+The full documentation for GDB is maintained as a Texinfo manual.
+If the \f(CW\*(C`info\*(C'\fR and \f(CW\*(C`gdb\*(C'\fR programs and GDB's Texinfo
+documentation are properly installed at your site, the command
+.PP
+.Vb 1
+\& info gdb
+.Ve
+.PP
+should give you access to the complete manual.
+.PP
+\&\fIUsing GDB: A Guide to the GNU Source-Level Debugger\fR,
+Richard M. Stallman and Roland H. Pesch, July 1991.
+.SH COPYRIGHT
+.IX Header "COPYRIGHT"
+Copyright (c) 1988\-2023 Free Software Foundation, Inc.
+.PP
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being "Free Software" and "Free Software Needs
+Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.
+.PP
+(a) The FSF's Back-Cover Text is: "You are free to copy and modify
+this GNU Manual. Buying copies from GNU Press supports the FSF in
+developing GNU and promoting software freedom."