libdebugger: Fix #12944.
LocatableFile:
- If there is no parent path, don't insert a path separator between parent
and filename. This may be the case depending on how the source file was
specified during compilation.
FileManager:
- When constructing an EntryPath from a LocatableEntry, ensure that the
parent folder actually has a path string that isn't simply empty to ensure
consistency with the raw dir/file case. Otherwise, hash lookups that are
dependent on the parent dir being NULL if not specified will fail, causing
us to not locate the file successfully. This was preventing us from updating
source location information for make 4.2's main.c, as the latter was
specified in such a way that the above combination of conditions would
occur, and consequently when asking the FileManager to update the source
location with the actual file, the entry couldn't be found in the table,
and no information would be updated.