if (pst->fullname == NULL) source_full_path_of (pst->filename, &pst->fullname);
psymtab_to_fullname (pst);
lookup_partial_symtab (const char *name){  struct partial_symtab *pst;  struct objfile *objfile;  char *full_path = NULL;  char *real_path = NULL;  /* Here we are interested in canonicalizing an absolute path, not     absolutizing a relative path.  */  if (IS_ABSOLUTE_PATH (name))    {      full_path = xfullpath (name);      make_cleanup (xfree, full_path);      real_path = gdb_realpath (name);      make_cleanup (xfree, real_path);    }  ALL_PSYMTABS (objfile, pst)  {    if (FILENAME_CMP (name, pst->filename) == 0)      {	return (pst);      }    /* If the user gave us an absolute path, try to find the file in       this symtab and use its absolute path.  */    if (full_path != NULL)      {	if (pst->fullname == NULL)	  source_full_path_of (pst->filename, &pst->fullname);	if (pst->fullname != NULL	    && FILENAME_CMP (full_path, pst->fullname) == 0)	  {	    return pst;	  }      }    if (real_path != NULL)      {        char *rp = NULL;	if (pst->fullname == NULL)	  source_full_path_of (pst->filename, &pst->fullname);        if (pst->fullname != NULL)          {            rp = gdb_realpath (pst->fullname);            make_cleanup (xfree, rp);          }	if (rp != NULL && FILENAME_CMP (real_path, rp) == 0)	  {	    return pst;	  }      }  }  /* Now, search for a matching tail (only if name doesn't have any dirs) */  if (lbasename (name) == name)    ALL_PSYMTABS (objfile, pst)    {      if (FILENAME_CMP (lbasename (pst->filename), name) == 0)	return (pst);    }  return (NULL);}