diff --git a/docs/ISSUE_GUIDELINES.md b/docs/ISSUE_GUIDELINES.md index be011608..c031fe85 100644 --- a/docs/ISSUE_GUIDELINES.md +++ b/docs/ISSUE_GUIDELINES.md @@ -47,7 +47,7 @@ basically, directories in /tmp/hypr are your sessions. ## Obtaining the Hyprland Crash Report (v0.22.0beta and up) -If you have `$XDG_CACHE_HOME` set, the crash report directory is `$XDG_CACHE_HOME/hyprland`. If not, it's `~/.hyprland` +If you have `$XDG_CACHE_HOME` set, the crash report directory is `$XDG_CACHE_HOME/hyprland`. If not, it's `$HOME/.cache/hyprland`. Go to the crash report directory and you should find a file named `hyprlandCrashReport[XXXX].txt` where `[XXXX]` is the PID of the process that crashed. diff --git a/src/debug/CrashReporter.cpp b/src/debug/CrashReporter.cpp index 70a6f7b6..cf648191 100644 --- a/src/debug/CrashReporter.cpp +++ b/src/debug/CrashReporter.cpp @@ -146,21 +146,18 @@ void CrashReporter::createAndSaveCrash(int sig) { return; std::ofstream ofs; - std::string path; - if (!CACHE_HOME || std::string(CACHE_HOME).empty()) { - if (!std::filesystem::exists(std::string(HOME) + "/.hyprland")) - std::filesystem::create_directory(std::string(HOME) + "/.hyprland"); + std::string reportDir; - path = std::string(HOME) + "/.hyprland/hyprlandCrashReport" + std::to_string(PID) + ".txt"; - ofs.open(path, std::ios::trunc); + if (!CACHE_HOME || std::string(CACHE_HOME).empty()) + reportDir = std::string(HOME) + "/.cache/hyprland"; + else + reportDir = std::string(CACHE_HOME) + "/hyprland"; - } else { - if (!std::filesystem::exists(std::string(CACHE_HOME) + "/hyprland")) - std::filesystem::create_directory(std::string(CACHE_HOME) + "/hyprland"); + if (!std::filesystem::exists(reportDir)) + std::filesystem::create_directory(reportDir); + const auto path = reportDir + "/hyprlandCrashReport" + std::to_string(PID) + ".txt"; - path = std::string(CACHE_HOME) + "/hyprland/hyprlandCrashReport" + std::to_string(PID) + ".txt"; - ofs.open(path, std::ios::trunc); - } + ofs.open(path, std::ios::trunc); ofs << finalCrashReport;