bool is_linkage;
const char *name;
struct arange arange;
- /* Where the symbol is defined. */
- asection *sec;
/* The offset of the funcinfo from the start of the unit. */
uint64_t unit_offset;
};
const char *name;
/* The address of the variable. */
bfd_vma addr;
- /* Where the symbol is defined. */
- asection *sec;
/* Is this a stack variable? */
bool stack;
};
bfd_vma best_fit_len = 0;
struct arange *arange;
const char *name = bfd_asymbol_name (sym);
- asection *sec = bfd_asymbol_section (sym);
for (each_func = unit->function_table;
each_func;
arange;
arange = arange->next)
{
- if ((!each_func->sec || each_func->sec == sec)
- && addr >= arange->low
+ if (addr >= arange->low
&& addr < arange->high
&& each_func->name
&& strcmp (name, each_func->name) == 0
if (best_fit)
{
- best_fit->sec = sec;
*filename_ptr = best_fit->file;
*linenumber_ptr = best_fit->line;
return true;
unsigned int *linenumber_ptr)
{
const char *name = bfd_asymbol_name (sym);
- asection *sec = bfd_asymbol_section (sym);
struct varinfo* each;
for (each = unit->variable_table; each; each = each->prev_var)
&& each->file != NULL
&& each->name != NULL
&& each->addr == addr
- && (!each->sec || each->sec == sec)
&& strcmp (name, each->name) == 0)
break;
if (each)
{
- each->sec = sec;
*filename_ptr = each->file;
*linenumber_ptr = each->line;
return true;
struct info_list_node *node;
struct arange *arange;
const char *name = bfd_asymbol_name (sym);
- asection *sec = bfd_asymbol_section (sym);
for (node = lookup_info_hash_table (hash_table, name);
node;
arange;
arange = arange->next)
{
- if ((!each_func->sec || each_func->sec == sec)
- && addr >= arange->low
+ if (addr >= arange->low
&& addr < arange->high
&& (!best_fit
|| arange->high - arange->low < best_fit_len))
if (best_fit)
{
- best_fit->sec = sec;
*filename_ptr = best_fit->file;
*linenumber_ptr = best_fit->line;
return true;
unsigned int *linenumber_ptr)
{
const char *name = bfd_asymbol_name (sym);
- asection *sec = bfd_asymbol_section (sym);
struct varinfo* each;
struct info_list_node *node;
node = node->next)
{
each = (struct varinfo *) node->info;
- if (each->addr == addr
- && (!each->sec || each->sec == sec))
+ if (each->addr == addr)
{
- each->sec = sec;
*filename_ptr = each->file;
*linenumber_ptr = each->line;
return true;