Debugging with GDB: Footnotes

[Top] | [Contents] | [Index] | [ ? ]

# Footnotes

### (1)

On DOS/Windows systems, the home directory is the one pointed to by the `HOME` environment variable.

### (2)

The completer can be confused by certain kinds of invalid expressions. Also, it only examines the static type of the expression, not the dynamic type.

### (3)

Currently, only GNU/Linux.

### (4)

Note that some side effects are easier to undo than others. For instance, memory and registers are relatively easy, but device I/O is hard. Some targets may be able undo things like device I/O, and some may not.

The contract between GDB and the reverse executing target requires only that the target do something reasonable when GDB tells it to execute backwards, and then report the results back to GDB. Whatever the target reports back to GDB, GDB will report back to the user. GDB assumes that the memory and registers that the target reports are in a consistant state, but GDB accepts whatever it is given.

### (5)

Unless the code is too heavily optimized.

### (6)

Note that embedded programs (the so-called "free-standing" environment) are not required to have a `main` function as the entry point. They could even have multiple entry points.

### (7)

The only restriction is that your editor (say `ex`), recognizes the following command-line syntax:

    ex +number file

The optional numeric value +number specifies the number of the line in the file where to start editing.

### (8)

``b'` cannot be used because these format letters are also used with the `x` command, where ``b'` stands for "byte"; see Examining Memory.

### (9)

This is a way of removing one word from the stack, on machines where stacks grow downward in memory (most machines, nowadays). This assumes that the innermost stack frame is selected; setting `$sp` is not allowed when other stack frames are selected. To pop entire frames off the stack, regardless of machine architecture, use `return`; see Returning from a Function.

### (10)

In non-stop mode, it is moderately rare for a running thread to modify the stack of a stopped thread in a way that would interfere with a backtrace, and caching of stack reads provides a significant speed up of remote backtraces.

### (11)

This is the minimum. Recent versions of GCC support ``-gdwarf-3'` and ``-gdwarf-4'`; we recommend always choosing the most recent version of DWARF.

### (12)

If you want to specify a local system root using a directory that happens to be named ``remote:'`, you need to use some equivalent variant of the name like ``./remote:'`.

### (13)

If you choose a port number that conflicts with another service, `gdbserver` prints an error message and exits.

### (14)

The register named with capital letters represent the architecture registers.

### (15)

In ``gdb-7.7 for GNAT GPL 2014 (20140405)/gdb/refcard.ps'` of the version 7.7 for GNAT GPL 2014 (20140405) release.

### (16)

The ``qP'` and ``qL'` packets predate these conventions, and have arguments without any terminator for the packet name; we suspect they are in widespread use in places that are difficult to upgrade. The ``qC'` packet has no arguments, but some existing stubs (e.g. RedBoot) are known to not check for the end of the packet.

This document was generated by GNAT Mailserver on April, 17 2014 using texi2html