mirror of
https://github.com/aseprite/aseprite.git
synced 2025-01-05 21:57:20 +00:00
Change location for crash data (e.g. %AppData%/Aseprite/crashdb)
This commit is contained in:
parent
8b215235c7
commit
024cd73f62
67
src/app/sentry_wrapper.h
Normal file
67
src/app/sentry_wrapper.h
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
// Aseprite
|
||||||
|
// Copyright (C) 2021 Igara Studio S.A.
|
||||||
|
//
|
||||||
|
// This program is distributed under the terms of
|
||||||
|
// the End-User License Agreement for Aseprite.
|
||||||
|
|
||||||
|
#ifndef APP_SENTRY_WRAPPER_H
|
||||||
|
#define APP_SENTRY_WRAPPER_H
|
||||||
|
|
||||||
|
#if !ENABLE_SENTRY
|
||||||
|
#error ENABLE_SENTRY must be defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "app/resource_finder.h"
|
||||||
|
#include "base/string.h"
|
||||||
|
|
||||||
|
#include "sentry.h"
|
||||||
|
|
||||||
|
namespace app {
|
||||||
|
|
||||||
|
class Sentry {
|
||||||
|
public:
|
||||||
|
void init()
|
||||||
|
{
|
||||||
|
sentry_options_t* options = sentry_options_new();
|
||||||
|
sentry_options_set_dsn(options, SENTRY_DNS);
|
||||||
|
|
||||||
|
std::string release = "aseprite@";
|
||||||
|
release += get_app_version();
|
||||||
|
sentry_options_set_release(options, release.c_str());
|
||||||
|
|
||||||
|
#if _DEBUG
|
||||||
|
sentry_options_set_debug(options, 1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
setupDirs(options);
|
||||||
|
|
||||||
|
if (sentry_init(options) == 0)
|
||||||
|
m_init = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
~Sentry()
|
||||||
|
{
|
||||||
|
if (m_init)
|
||||||
|
sentry_close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
void setupDirs(sentry_options_t* options)
|
||||||
|
{
|
||||||
|
ResourceFinder rf;
|
||||||
|
rf.includeUserDir("crashdb");
|
||||||
|
std::string dir = rf.getFirstOrCreateDefault();
|
||||||
|
|
||||||
|
#if SENTRY_PLATFORM_WINDOWS
|
||||||
|
sentry_options_set_database_pathw(options, base::from_utf8(dir).c_str());
|
||||||
|
#else
|
||||||
|
sentry_options_set_database_path(options, dir.c_str());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
bool m_init = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace app
|
||||||
|
|
||||||
|
#endif // APP_SENTRY_WRAPPER_H
|
@ -22,7 +22,7 @@
|
|||||||
#include "ver/info.h"
|
#include "ver/info.h"
|
||||||
|
|
||||||
#if ENABLE_SENTRY
|
#if ENABLE_SENTRY
|
||||||
#include "sentry.h"
|
#include "app/sentry_wrapper.h"
|
||||||
#else
|
#else
|
||||||
#include "base/memory_dump.h"
|
#include "base/memory_dump.h"
|
||||||
#endif
|
#endif
|
||||||
@ -65,28 +65,6 @@ namespace {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLE_SENTRY
|
|
||||||
class Sentry {
|
|
||||||
public:
|
|
||||||
Sentry() {
|
|
||||||
sentry_options_t* options = sentry_options_new();
|
|
||||||
sentry_options_set_dsn(options, SENTRY_DNS);
|
|
||||||
|
|
||||||
std::string release = "aseprite@";
|
|
||||||
release += get_app_version();
|
|
||||||
sentry_options_set_release(options, release.c_str());
|
|
||||||
|
|
||||||
#if _DEBUG
|
|
||||||
sentry_options_set_debug(options, 1);
|
|
||||||
#endif
|
|
||||||
sentry_init(options);
|
|
||||||
}
|
|
||||||
~Sentry() {
|
|
||||||
sentry_close();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aseprite entry point. (Called from "os" library.)
|
// Aseprite entry point. (Called from "os" library.)
|
||||||
@ -107,7 +85,7 @@ int app_main(int argc, char* argv[])
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
#if ENABLE_SENTRY
|
#if ENABLE_SENTRY
|
||||||
Sentry sentry;
|
app::Sentry sentry;
|
||||||
#else
|
#else
|
||||||
base::MemoryDump memoryDump;
|
base::MemoryDump memoryDump;
|
||||||
#endif
|
#endif
|
||||||
@ -117,7 +95,9 @@ int app_main(int argc, char* argv[])
|
|||||||
os::SystemRef system(os::make_system());
|
os::SystemRef system(os::make_system());
|
||||||
app::App app;
|
app::App app;
|
||||||
|
|
||||||
#if !ENABLE_SENTRY
|
#if ENABLE_SENTRY
|
||||||
|
sentry.init();
|
||||||
|
#else
|
||||||
// Change the memory dump filename to save on disk (.dmp
|
// Change the memory dump filename to save on disk (.dmp
|
||||||
// file). Note: Only useful on Windows.
|
// file). Note: Only useful on Windows.
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user