From 60a7223fdd196d540f87504833166f558c95c035 Mon Sep 17 00:00:00 2001 From: Alexander Fedotov Date: Tue, 8 Dec 2020 13:07:23 +0300 Subject: [PATCH] gdbsupport: Use LOCALAPPDATA to determine cache dir Use the LOCALAPPDATA environment variable to determine the cache dir when running on Windows with native command line, otherwise nasty warning "Couldn't determine a path for index cached directory" appears. Change-Id: I77903f9f0cb4743555866b8aea892cef55132589 --- gdbsupport/ChangeLog | 5 +++++ gdbsupport/pathstuff.cc | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/gdbsupport/ChangeLog b/gdbsupport/ChangeLog index 88a0413e8b9..417e44aff31 100644 --- a/gdbsupport/ChangeLog +++ b/gdbsupport/ChangeLog @@ -1,3 +1,8 @@ +2020-12-08 Alexander Fedotov + + * pathstuff.cc (get_standard_cache_dir): Use LOCALAPPDATA environment + variable when running on Windows. + 2020-12-01 Andrew Burgess * tdesc.cc (print_xml_feature::visit): Print enum fields using diff --git a/gdbsupport/pathstuff.cc b/gdbsupport/pathstuff.cc index 311456720e4..b23e6ed064c 100644 --- a/gdbsupport/pathstuff.cc +++ b/gdbsupport/pathstuff.cc @@ -238,6 +238,16 @@ get_standard_cache_dir () return string_printf ("%s/" HOME_CACHE_DIR "/gdb", abs.get ()); } +#ifdef WIN32 + const char *win_home = getenv ("LOCALAPPDATA"); + if (win_home != NULL) + { + /* Make sure the path is absolute and tilde-expanded. */ + gdb::unique_xmalloc_ptr abs (gdb_abspath (win_home)); + return string_printf ("%s/gdb", abs.get ()); + } +#endif + return {}; } -- 2.30.2