This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Better handling of realpath() failure in windows_make_so() on Cygwin
- From: Jon Turney <jon dot turney at dronecode dot org dot uk>
- To: gdb-patches at sourceware dot org
- Cc: Jon Turney <jon dot turney at dronecode dot org dot uk>
- Date: Thu, 16 Jan 2020 17:27:56 +0000
- Subject: [PATCH] Better handling of realpath() failure in windows_make_so() on Cygwin
It seems Cygwin's realpath() can fail on certain DLLs (apparently some
AV software prevent it working on it's DLLs; See [1], [2]). Warn rather
than stopping with an error if that occurs.
Based on an original patch from Tim Chick.
[1] https://cygwin.com/ml/cygwin/2014-08/msg00401.html
[2] https://cygwin.com/ml/cygwin/2015-11/msg00353.html
gdb/ChangeLog:
2016-01-20 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (windows_make_so): Warn rather than stopping with
an error if realpath() fails.
---
Notes:
A more complex version of this patch was previously submitted as [1],
the discussion of which wandered off somewhere unproductive.
[1] https://sourceware.org/ml/gdb-patches/2016-01/msg00478.html
gdb/ChangeLog | 5 +++++
gdb/windows-nat.c | 5 ++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index be5955d379..2fcafda199 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -758,7 +758,10 @@ windows_make_so (const char *name, LPVOID load_addr)
free (rname);
}
else
- error (_("dll path too long"));
+ {
+ warning (_("dll path for \"%s\" too long or inaccessible"), name);
+ strcpy (so->so_name, so->so_original_name);
+ }
}
/* Record cygwin1.dll .text start/end. */
p = strchr (so->so_name, '\0') - (sizeof ("/cygwin1.dll") - 1);
--
2.21.0