This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Fix for PR gdb/9538 (loading of separate debuginfo and symlinks).


On Thu, Jan 12, 2012 at 2:26 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
>>> +
>>> + ?debugfile = find_separate_debug_file (dir1, canon_dir, debuglink,
>>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? crc32, objfile);
>>> + ?xfree (canon_dir);
>>> +
>>> + ?if (debugfile != NULL)
>>> + ? ?goto cleanup1;
>>> +
>>> + ?/* For PR gdb/9538, try again with realpath (if different from the
>>> + ? ? original). ?*/
>>> + ?dir2 = lrealpath (objfile->name);
>>
>> Maybe some optimization would be helpful. ?realpath is expensive and the
>> directory path is already canonicalized. ?Something like lstat (objfile->name)
>> and do this step only if it is a symlink.
>
> Wouldn't lstat need a configury #ifdef to make it build?

[for reference sake, one patch in my basenames-may-differ series (not
submitted) had a use for lstat.
IWBN to have lstat in gdb so we could (appropriately of course) use it.

OOC, Jan, what discussion led rise to having braces here:

+  if (strcmp (dir1, dir2) == 0)
+    {
+      /* Same directory, no point retrying.  */
+      goto cleanup;
+    }

and does that reasoning apply here:

+  if (debuglink == NULL)
+    /* There's no separate debug info, hence there's no way we could
+       load it => no warning.  */
+    return NULL;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]