From: Eli Zaretskii <eliz@gnu.org>
To: Jan Kratochvil <jan.kratochvil@redhat.com>
Cc: brobecker@adacore.com, tromey@redhat.com,
mark.kettenis@xs4all.nl, drow@false.org,
gdb-patches@sourceware.org
Subject: Re: [patch] Fix `return' of long/long-long results with no debuginfo
Date: Sat, 14 Mar 2009 10:45:00 -0000 [thread overview]
Message-ID: <u63ics8ut.fsf@gnu.org> (raw)
In-Reply-To: <20090313171134.GA4396@host0.dyn.jankratochvil.net>
> Date: Fri, 13 Mar 2009 18:11:35 +0100
> From: Jan Kratochvil <jan.kratochvil@redhat.com>
> Cc: Tom Tromey <tromey@redhat.com>, Mark Kettenis <mark.kettenis@xs4all.nl>, drow@false.org, gdb-patches@sourceware.org
>
> gdb/doc/
> 2009-03-13 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * gdb.texinfo (Returning): New description for missing debug info.
Thanks, this part is approved, provided that you add the missing
punctuation and clarify the text, as indicated below.
> + The concrete registers assignment depends on the OS ABI and the
> +type being returned by the selected stack frame.
I'm not sure the reader will understand why this sentence is here.
Perhaps it is important to have this note, but then please add some
(apparently missing) text that would explain how register assignment
is relevant to the issue at hand. Maybe you need to begin with the
normal case, where both the caller and the callee have debug info, and
take it from there to the two less obvious cases. See below.
> +As the selected stack frame function may not have its debug info available in
> +such cases @value{GDBN} needs to find out the type to return from user. For
^
Missing comma.
> +example typing @samp{return -1} with its implicit type @code{int} would set
^
Missing comma. Also, please use @kbd{return -1} instead of @samp, as
you are describing keyboard input.
> would set
> +only a part of a @code{long long int} result for a debug info less function.
I think it is better to talk about more general mismatch of an `int'
and the function's return type, because the "partial fill" case is
just a special case, and even then only on some platforms. That's
assuming that there is indeed a place for generalization: would your
first example still work the same if the return value of the function
were `double'?
> +Therefore the implicit return type is accepted for debug info featuring
> +functions as in this case:
> +
> +@smallexample
> +Breakpoint 1, func () at gdb.base/return-nodebug.c:29
> +29 return 31;
> +(@value{GDBP}) return -1
> +Make func return now? (y or n) y
> +#0 0x004004f6 in main () at gdb.base/return-nodebug.c:43
> +43 printf ("result=%lld\n", func ());
> +(@value{GDBP})
> +@end smallexample
> +
> +But for functions missing their debug info the user is required to specify the
> +return type by an appropriate cast explicitely:
^^^^^^^^^^^
A typo.
Anyway, this is confusing: the paragraph begins by talking about
functions without debug info, but then you give an example for a
function _with_ debug info, and say "Therefore", as if the example
where GDB does accept incomplete spec of the return value somehow
_follows_ from the immediately preceeding discussion.
I would begin with describing the normal case explicitly, before the
text you wrote. Something like:
Normally, both the selected stack frame and the one above it have
debug info. @value{GDBN} uses the debug info when the value of
@var{expression} does not have an explicit data type. For example,
if you type @kbd{return -1}, and the function in the current stack
frame is declared to return a @code{long long int}, @value{GDBN}
transparently converts the implicit @code{int} value of -1 into a
@code{long long int}:
<Put here your first example.>
However, if the selected stack frame does not have a debug info,
e.g., if the function was compiled without debug info, ...
and now describe the use-case you are talking about and give your
second example.
OK?
next prev parent reply other threads:[~2009-03-14 10:22 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-11 19:45 Jan Kratochvil
2009-02-11 20:40 ` Mark Kettenis
2009-02-11 20:50 ` Daniel Jacobowitz
2009-02-11 21:23 ` Mark Kettenis
2009-02-11 21:47 ` Jan Kratochvil
2009-02-11 21:58 ` Mark Kettenis
2009-02-11 22:08 ` Jan Kratochvil
2009-02-11 22:38 ` Mark Kettenis
2009-02-11 22:50 ` Jan Kratochvil
2009-03-03 18:10 ` Tom Tromey
2009-03-04 21:29 ` Mark Kettenis
2009-03-05 0:15 ` Tom Tromey
2009-03-09 1:55 ` Jan Kratochvil
2009-03-09 22:38 ` Mark Kettenis
2009-03-11 16:49 ` Joel Brobecker
2009-03-11 20:23 ` Tom Tromey
2009-03-11 21:48 ` Joel Brobecker
2009-03-13 19:50 ` Jan Kratochvil
2009-03-13 23:00 ` Joel Brobecker
2009-03-14 10:45 ` Eli Zaretskii [this message]
2009-03-14 22:09 ` Jan Kratochvil
2009-03-14 22:18 ` Eli Zaretskii
2009-03-15 9:22 ` Joel Brobecker
2009-03-15 18:15 ` Jan Kratochvil
2009-03-18 4:36 ` Pedro Alves
2009-03-18 14:44 ` Joel Brobecker
2009-03-18 15:39 ` Jan Kratochvil
2009-03-18 15:46 ` Pedro Alves
2009-02-11 22:44 ` Mark Kettenis
2009-02-12 9:41 ` Jan Kratochvil
2009-02-12 14:36 ` Pierre Muller
2009-02-12 14:44 ` Jan Kratochvil
2009-02-14 21:59 ` Mark Kettenis
2009-02-21 12:47 ` Jan Kratochvil
2009-02-21 13:44 ` Mark Kettenis
2009-02-21 15:58 ` Jan Kratochvil
2009-02-21 16:21 ` Mark Kettenis
2009-02-21 16:32 ` Jan Kratochvil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=u63ics8ut.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=brobecker@adacore.com \
--cc=drow@false.org \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
--cc=mark.kettenis@xs4all.nl \
--cc=tromey@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox