From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18519 invoked by alias); 10 Jul 2002 19:27:47 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 18512 invoked from network); 10 Jul 2002 19:27:46 -0000 Received: from unknown (HELO tetsuo.nj.caldera.com) (63.124.204.226) by sources.redhat.com with SMTP; 10 Jul 2002 19:27:46 -0000 Received: from caldera.com (localhost.localdomain [127.0.0.1]) by tetsuo.nj.caldera.com (8.11.6/8.11.6) with ESMTP id g6AJdx403823; Wed, 10 Jul 2002 15:39:59 -0400 Message-ID: <3D2C8D8C.E5127E28@caldera.com> Date: Wed, 10 Jul 2002 12:32:00 -0000 From: Petr Sorfa Organization: Caldera X-Accept-Language: en MIME-Version: 1.0 To: Daniel Jacobowitz CC: "gdb-patches@sources.redhat.com" Subject: Re: [PATCH] DW_AT_calling_convention support REV 2 References: <3D2C80A8.35D678FE@caldera.com> <20020710184710.GA923@nevyn.them.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2002-07/txt/msg00200.txt.bz2 Hi Daniel, > > 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; > } Good, I agree, that makes it more generic. Need to check for check_symbol for NULL as this might tank GDB at the second if. > 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? Um, you've lost me. There is no get_main_name() function, do you mean get_main_symbol() or main_name()? I still not sure what the callers of the function should do. Although, I do agree that the patch should catch unloading the main_symbol, but how? Petr > > -- > Daniel Jacobowitz Carnegie Mellon University > MontaVista Software Debian GNU/Linux Developer