2020-04-07 08:38:54 +00:00
|
|
|
// sentryIntegration.hxx - Interface with Sentry.io crash reporting
|
|
|
|
//
|
|
|
|
// Copyright (C) 2020 James Turner james@flightgear.org
|
|
|
|
//
|
|
|
|
// This program is free software; you can redistribute it and/or
|
|
|
|
// modify it under the terms of the GNU General Public License as
|
|
|
|
// published by the Free Software Foundation; either version 2 of the
|
|
|
|
// License, or (at your option) any later version.
|
|
|
|
//
|
|
|
|
// This program is distributed in the hope that it will be useful, but
|
|
|
|
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
// General Public License for more details.
|
|
|
|
//
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
|
|
// along with this program; if not, write to the Free Software
|
|
|
|
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <string>
|
2020-04-20 09:47:11 +00:00
|
|
|
#include <simgear/misc/strutils.hxx>
|
2020-04-07 08:38:54 +00:00
|
|
|
|
|
|
|
namespace flightgear
|
|
|
|
{
|
|
|
|
void initSentry();
|
|
|
|
|
|
|
|
void shutdownSentry();
|
|
|
|
|
2020-08-17 12:10:12 +00:00
|
|
|
void delayedSentryInit();
|
|
|
|
|
2020-04-07 08:38:54 +00:00
|
|
|
bool isSentryEnabled();
|
|
|
|
|
|
|
|
void addSentryBreadcrumb(const std::string& msg, const std::string& level);
|
|
|
|
|
|
|
|
void addSentryTag(const char* tag, const char* value);
|
|
|
|
|
|
|
|
void addSentryTag(const std::string& tag, const std::string& value);
|
|
|
|
|
2020-04-20 09:47:11 +00:00
|
|
|
void sentryReportNasalError(const std::string& msg, const string_list& stack);
|
2020-04-07 08:38:54 +00:00
|
|
|
|
2020-08-23 16:41:34 +00:00
|
|
|
void sentryReportException(const std::string& msg, const std::string& location = {});
|
|
|
|
|
|
|
|
void sentryReportFatalError(const std::string& msg, const std::string& more = {});
|
|
|
|
|
2020-10-13 21:04:33 +00:00
|
|
|
/**
|
|
|
|
* @brief helper to allow per-thread supression of
|
|
|
|
* error reports based on XML parse/include errors.
|
|
|
|
* This is to reduce noise from the launhcer scanning large
|
|
|
|
* directories of non-fixlbe aircraft, in a helper thread.
|
|
|
|
*
|
|
|
|
* We do it at this level since we don't want to modify
|
|
|
|
* the SimGear XML parser, so we set a thread-local flag
|
|
|
|
* and use it to avoid reporting the exception when it
|
|
|
|
* occurs.
|
|
|
|
*/
|
|
|
|
void sentryThreadReportXMLErrors(bool report);
|
|
|
|
|
2021-02-20 20:05:51 +00:00
|
|
|
class SentryXMLErrorSupression
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
SentryXMLErrorSupression();
|
|
|
|
~SentryXMLErrorSupression();
|
|
|
|
};
|
|
|
|
|
2020-04-07 08:38:54 +00:00
|
|
|
} // of namespace flightgear
|
|
|
|
|