From: Joel Brobecker <brobecker@adacore.com>
To: Waldek Hebisch <hebisch@math.uni.wroc.pl>
Cc: Pierre Muller <muller@ics.u-strasbg.fr>,
gdb-patches@sourceware.org, gpc@gnu.de
Subject: Re: [RFC] Handle GPC specific name for main function
Date: Thu, 27 Sep 2007 05:52:00 -0000 [thread overview]
Message-ID: <20070927055228.GA3787@adacore.com> (raw)
In-Reply-To: <E1Iaie4-0004Wd-00@hera.math.uni.wroc.pl>
Thanks a lot for the detailed explainations.
> I doubt that any simple method will work for "all versions of GPC".
It doesn't have to. We can add support for as many or as few
versions of GPC.
> I would say that the most reliable indication that the program
> is GPC compiled is if debug info indicate that language is Pascal
> and there are signs that the file is gcc compiled (otherwise the file
> is compiled by some other Pascal compiler). If debug info indicate
> other language file is not GPC compiled.
Unfortunately, we have to consider multi-language applications too.
Verifying that one file is compiled with GPC is not enough to determine
that the main is in Pascal.
> GPC emits '_p__M0_main_program' (or 'pascal_main_program')
> in the same file as 'main', and '_p__M0_main_program' is called
> from 'main' -- I am not sure if gdb can check this.
This is a possibility, but will only work if we have debugging
info.
> Let me remark that it is possible to have '_p__M0_main_program'
> without having 'main'. Namely, GPC allows to compile Pascal source
> like normal program, but replacing main by a differently named function.
> One use of such possibility is when making shared libraries. Another
> is when the main program is not a Pascal program.
That's a big throwback, because it means that Pierre's patch is not
correct, in particular in the context of multi-language applications.
It was assuming that this symbol was only defined when the main program
is in pascal.
It looks like we're reaching the same conclusion as before, which is
that, unless GPC gets changed to emit a specific symbol to specify
that the main is in pascal, the strongest approach is to rely on
DWARF data.
http://www.cygwin.com/ml/gdb-patches/2005-11/msg00380.html
--
Joel
next prev parent reply other threads:[~2007-09-27 5:52 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-26 14:40 Pierre Muller
2007-09-26 15:03 ` Eli Zaretskii
2007-09-26 15:32 ` Pierre Muller
2007-09-26 17:48 ` Eli Zaretskii
2007-09-26 17:58 ` Joel Brobecker
2007-09-26 19:39 ` Pierre Muller
2007-09-26 19:50 ` Joel Brobecker
2007-09-26 22:06 ` Pierre Muller
2007-09-26 22:39 ` [RFC-2] " Pierre Muller
2007-09-27 6:03 ` Joel Brobecker
2007-09-27 7:29 ` [RFC-3] " Pierre Muller
[not found] ` <46FB5E2C.6080606@microbizz.nl>
[not found] ` <46FB5F76.9050501@microbizz.nl>
2007-09-27 7:57 ` Pierre Muller
2007-09-27 12:11 ` Daniel Jacobowitz
2007-09-27 12:35 ` Pierre Muller
2007-09-27 12:40 ` 'Daniel Jacobowitz'
2007-09-27 16:20 ` Joel Brobecker
2007-09-27 16:32 ` Joel Brobecker
2007-09-27 21:36 ` Pierre Muller
2007-09-28 18:31 ` Joel Brobecker
2007-09-27 8:02 ` Pierre Muller
2007-09-27 13:01 ` Waldek Hebisch
2007-09-27 7:20 ` [RFC-2] " Eli Zaretskii
2007-09-27 1:58 ` [RFC] " Waldek Hebisch
2007-09-27 5:52 ` Joel Brobecker [this message]
2007-09-27 17:17 ` Thiago Jung Bauermann
2007-09-27 19:50 ` Jim Blandy
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=20070927055228.GA3787@adacore.com \
--to=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=gpc@gnu.de \
--cc=hebisch@math.uni.wroc.pl \
--cc=muller@ics.u-strasbg.fr \
/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