|
|
|
@ -1,7 +1,7 @@ |
|
|
|
/* corefile.c
|
|
|
|
|
|
|
|
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, |
|
|
|
2010, 2011 Free Software Foundation, Inc. |
|
|
|
2010, 2011, 2012 Free Software Foundation, Inc. |
|
|
|
|
|
|
|
This file is part of GNU Binutils. |
|
|
|
|
|
|
|
@ -68,7 +68,7 @@ parse_error (const char *filename) |
|
|
|
static int |
|
|
|
cmp_symbol_map (const void * l, const void * r) |
|
|
|
{ |
|
|
|
return strcmp (((struct function_map *) l)->function_name, |
|
|
|
return strcmp (((struct function_map *) l)->function_name, |
|
|
|
((struct function_map *) r)->function_name); |
|
|
|
} |
|
|
|
|
|
|
|
@ -394,13 +394,19 @@ core_sym_class (asymbol *sym) |
|
|
|
Allow for multiple iterations of both - apparently GCC can clone |
|
|
|
clones and subprograms. */ |
|
|
|
int digit_seen = 0; |
|
|
|
#define CLONE_NAME ".clone." |
|
|
|
#define CLONE_NAME_LEN strlen (CLONE_NAME) |
|
|
|
|
|
|
|
#define CLONE_NAME ".clone." |
|
|
|
#define CLONE_NAME_LEN strlen (CLONE_NAME) |
|
|
|
#define CONSTPROP_NAME ".constprop." |
|
|
|
#define CONSTPROP_NAME_LEN strlen (CONSTPROP_NAME) |
|
|
|
|
|
|
|
if (strlen (name) > CLONE_NAME_LEN |
|
|
|
&& strncmp (name, CLONE_NAME, CLONE_NAME_LEN) == 0) |
|
|
|
name += CLONE_NAME_LEN - 1; |
|
|
|
|
|
|
|
else if (strlen (name) > CONSTPROP_NAME_LEN |
|
|
|
&& strncmp (name, CONSTPROP_NAME, CONSTPROP_NAME_LEN) == 0) |
|
|
|
name += CONSTPROP_NAME_LEN - 1; |
|
|
|
|
|
|
|
for (name++; *name; name++) |
|
|
|
if (digit_seen && *name == '.') |
|
|
|
break; |
|
|
|
@ -470,7 +476,7 @@ get_src_info (bfd_vma addr, const char **filename, const char **name, int *line_ |
|
|
|
|
|
|
|
/* Return number of symbols in a symbol-table file. */ |
|
|
|
|
|
|
|
static int |
|
|
|
static int |
|
|
|
num_of_syms_in (FILE * f) |
|
|
|
{ |
|
|
|
const int BUFSIZE = 1024; |
|
|
|
@ -479,7 +485,7 @@ num_of_syms_in (FILE * f) |
|
|
|
char type; |
|
|
|
char * name = (char *) xmalloc (BUFSIZE); |
|
|
|
int num = 0; |
|
|
|
|
|
|
|
|
|
|
|
while (!feof (f) && fgets (buf, BUFSIZE - 1, f)) |
|
|
|
{ |
|
|
|
if (sscanf (buf, "%s %c %s", address, &type, name) == 3) |
|
|
|
|