This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH] DW_AT_calling_convention support REV 2
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Petr Sorfa <petrs at caldera dot com>
- Cc: "gdb-patches at sources dot redhat dot com" <gdb-patches at sources dot redhat dot com>
- Date: Wed, 10 Jul 2002 14:47:10 -0400
- Subject: Re: [PATCH] DW_AT_calling_convention support REV 2
- References: <3D2C80A8.35D678FE@caldera.com>
On Wed, Jul 10, 2002 at 02:44:56PM -0400, Petr Sorfa wrote:
> Hi,
>
> Revised patch for supporting DW_AT_calling_convention. This helps GDB
> identify the "main" program for languages that do not have a starting
> subroutine called "main". It adds a new API set for keeping track of the
> symbol associated with "main". Note that there are 3 checks for
> DW_AT_calling_convention. They are all necessary as they are detected at
> different times when processing program debug information.
I wasn't quite clear... there's one thing that should be different.
> + /* Determine whether the symbol passed is equivalent to
> + the ``main'' symbol. Returns 0 if not or if there is no ``main''
> + symbol set. */
> + int
> + is_main_symbol (struct symbol *check_symbol)
> + {
> + return (check_symbol == NULL ? 0 : symbol_of_main == check_symbol);
> + }
>
> void
> _initialize_symtab (void)
I was thinking like:
int
is_main_symbol (struct symbol *check_symbol)
{
if (symbol_of_main && symbol_of_main == check_symbol)
return 1;
else if (strcmp (SYMBOL_NAME (check_symbol), get_main_name ()) == 0)
return 1;
return 0;
}
And then change all callers of get_main_name () to use this.
(Note that this requires being careful if symbol_of_main gets
unloaded and we load a C program afterwards!)
Make sense? Sound reasonable?
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer