mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 01:50:24 +08:00
Introduce find_source_or_rewrite
The final bug fix in this series would duplicate the logic in psymtab_to_fullname, so this patch extracts the body of this function into a new function.
This commit is contained in:
@ -953,26 +953,9 @@ psymtab_to_fullname (struct partial_symtab *ps)
|
||||
to handle cases like the file being moved. */
|
||||
if (ps->fullname == NULL)
|
||||
{
|
||||
gdb::unique_xmalloc_ptr<char> fullname;
|
||||
scoped_fd fd = find_and_open_source (ps->filename, ps->dirname,
|
||||
&fullname);
|
||||
gdb::unique_xmalloc_ptr<char> fullname
|
||||
= find_source_or_rewrite (ps->filename, ps->dirname);
|
||||
ps->fullname = fullname.release ();
|
||||
|
||||
if (fd.get () < 0)
|
||||
{
|
||||
/* rewrite_source_path would be applied by find_and_open_source, we
|
||||
should report the pathname where GDB tried to find the file. */
|
||||
|
||||
if (ps->dirname == NULL || IS_ABSOLUTE_PATH (ps->filename))
|
||||
fullname.reset (xstrdup (ps->filename));
|
||||
else
|
||||
fullname.reset (concat (ps->dirname, SLASH_STRING,
|
||||
ps->filename, (char *) NULL));
|
||||
|
||||
ps->fullname = rewrite_source_path (fullname.get ()).release ();
|
||||
if (ps->fullname == NULL)
|
||||
ps->fullname = fullname.release ();
|
||||
}
|
||||
}
|
||||
|
||||
return ps->fullname;
|
||||
|
Reference in New Issue
Block a user