Add d_main_name to set the logical entry point for D programs.
gdb/ChangeLog: 2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org> * d-lang.h (d_main_name): Add declaration. * d-lang.c (d_main_name): New function. * symtab.c (find_main_name): Add call to d_main_name.
This commit is contained in:
parent
3271ba660a
commit
6377854769
|
@ -1,3 +1,9 @@
|
|||
2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
||||
|
||||
* d-lang.h (d_main_name): Add declaration.
|
||||
* d-lang.c (d_main_name): New function.
|
||||
* symtab.c (find_main_name): Add call to d_main_name.
|
||||
|
||||
2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
||||
|
||||
* d-lang.c (d_language_defn): Change macro_expansion_c to
|
||||
|
|
21
gdb/d-lang.c
21
gdb/d-lang.c
|
@ -29,6 +29,27 @@
|
|||
|
||||
#include <ctype.h>
|
||||
|
||||
/* The name of the symbol to use to get the name of the main subprogram. */
|
||||
static const char D_MAIN[] = "D main";
|
||||
|
||||
/* Function returning the special symbol name used by D for the main
|
||||
procedure in the main program if it is found in minimal symbol list.
|
||||
This function tries to find minimal symbols so that it finds them even
|
||||
if the program was compiled without debugging information. */
|
||||
|
||||
const char *
|
||||
d_main_name (void)
|
||||
{
|
||||
struct minimal_symbol *msym;
|
||||
|
||||
msym = lookup_minimal_symbol (D_MAIN, NULL, NULL);
|
||||
if (msym != NULL)
|
||||
return D_MAIN;
|
||||
|
||||
/* No known entry procedure found, the main program is probably not D. */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Extract identifiers from MANGLED_STR and append it to TEMPBUF.
|
||||
Return 1 on success or 0 on failure. */
|
||||
static int
|
||||
|
|
|
@ -22,6 +22,10 @@
|
|||
|
||||
#include "symtab.h"
|
||||
|
||||
/* Defined in d-lang.c */
|
||||
|
||||
extern const char *d_main_name (void);
|
||||
|
||||
extern char *d_demangle (const char *mangled, int options);
|
||||
|
||||
extern void d_val_print (struct type *type, const gdb_byte *valaddr,
|
||||
|
|
|
@ -5122,6 +5122,13 @@ find_main_name (void)
|
|||
return;
|
||||
}
|
||||
|
||||
new_main_name = d_main_name ();
|
||||
if (new_main_name != NULL)
|
||||
{
|
||||
set_main_name (new_main_name, language_d);
|
||||
return;
|
||||
}
|
||||
|
||||
new_main_name = go_main_name ();
|
||||
if (new_main_name != NULL)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue