if (func == NULL || q->symbol.value <= offset) func = (asymbol *) q;
if (q->symbol.section == section && q->symbol.value >= low_func && q->symbol.value <= offset) { func = (asymbol *) q; low_func = q->symbol.value; }
_bfd_elf_find_nearest_line (abfd,			    section,			    symbols,			    offset,			    filename_ptr,			    functionname_ptr,			    line_ptr)     bfd *abfd;     asection *section;     asymbol **symbols;     bfd_vma offset;     CONST char **filename_ptr;     CONST char **functionname_ptr;     unsigned int *line_ptr;{  const char *filename;  asymbol *func;  asymbol **p;  if (symbols == NULL)    return false;  filename = NULL;  func = NULL;  for (p = symbols; *p != NULL; p++)    {      elf_symbol_type *q;      q = (elf_symbol_type *) *p;      if (bfd_get_section (&q->symbol) != section)	continue;      switch (ELF_ST_TYPE (q->internal_elf_sym.st_info))	{	default:	  break;	case STT_FILE:	  filename = bfd_asymbol_name (&q->symbol);	  break;	case STT_FUNC:	  if (func == NULL	      || q->symbol.value <= offset)	    func = (asymbol *) q;	  break;	}    }  if (func == NULL)    return false;  *filename_ptr = filename;  *functionname_ptr = bfd_asymbol_name (func);  *line_ptr = 0;  return true;}