Use IsRunningUnitTest / IsRunningUITest in vclplug_win, too
[LibreOffice.git] / include / sal / backtrace.hxx
blob5f44e5e01d2dd77a1b63002233abe46f03a32a01
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
10 #ifndef INCLUDED_SAL_BACKTRACE_HXX
11 #define INCLUDED_SAL_BACKTRACE_HXX
13 #include "sal/config.h"
14 #include "sal/saldllapi.h"
15 #include "sal/types.h"
16 #include "rtl/ustring.hxx"
17 #include <memory>
19 /// @cond INTERNAL
20 /**
21 Two stage API for recording and then later decoding stack backtraces.
22 Useful for debugging facilities where we are only interested in decoding
23 a small handful of recorded stack traces.
25 @param backtraceDepth value indicating the maximum backtrace depth; must be > 0
27 @since LibreOffice 6.0
29 #if defined LIBO_INTERNAL_ONLY
31 namespace sal
33 struct BacktraceState
35 void** buffer;
36 int nDepth;
37 ~BacktraceState() { delete[] buffer; }
40 SAL_DLLPUBLIC std::unique_ptr<BacktraceState> backtrace_get(sal_uInt32 backtraceDepth);
42 SAL_DLLPUBLIC OUString backtrace_to_string(BacktraceState* backtraceState);
45 #endif
47 #endif
49 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */