Re: [PATCH 12/13] Document "no debug info debugging" improvements

Eli Zaretskii
2017-07-13T15:47:12Z

> From: Pedro Alves <palves@redhat.com>
> Date: Thu, 13 Jul 2017 03:19:30 +0100
>
> Here's the documentation bits for all the improvements. The original
> "weak alias functions" paragraph ends up disappearing, because this
> other patch, which I'm considering kind of part of this series, makes the
> alias case Just Work:
> https://sourceware.org/ml/gdb-patches/2017-07/msg00018.html
>
> gdb/ChangeLog:
> yyyy-mm-dd Pedro Alves <palves@redhat.com>
>
> * NEWS (Safer support for debugging with no debug info): New.
>
> gdb/doc/ChangeLog:
> yyyy-mm-dd Pedro Alves <palves@redhat.com>
>
> * gdb.texinfo (Variables): Document inspecting no-debug-info
> variables.
> (Symbols): Document inspecting no-debug-info types.
> (Calling): Document calling no-debug-info functions.

Thanks, this is okay with a minor comment:

> +includes no debug information, @value{GDBN} says @w{@samp{'var' has
> +unknown type; cast it to its declared type}}. @xref{Symbols, unknown
> +type}, for more about unknown types. If you cast the variable to its
> +declared type, @value{GDBN} gets the variable's value using the
> +cast-to type as the variable's type. For example, in a C program:
> +
> +@smallexample
> + (@value{GDBP}) p var
> + 'var' has unknown type; cast it to its declared type
> + (@value{GDBP}) p (float) var
> + $1 = 3.14
> +@end smallexample

Since you have an example showing the error message, repeating that in
the text is redundant. Moreover, it will almost certainly cause an
overfull hbox. Instead, I would just say

If you try to inspect the type of a (global) variable for which
@value{GDBN} has no type information, @value{GDBN} displays an error
message.

> +@cindex unknown type
> +Othertimes, information about a variable's type is completely absent
> +from the debug information included in the program. This most often
> +happens when the program or library where the variable is defined
> +includes no debug information at all. @value{GDBN} knows the variable
> +exists from inspecting the linker/loader symbol table (e.g., the ELF
> +dynamic symbol table), but such symbols do not contain type
> +information. If you try to inspect the type of a (global) variable
> +for which @value{GDBN} has no type information, @value{GDBN} says
> +@w{@samp{ }}. For example:

Same here.