1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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/.
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"
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
33 struct BacktraceState
{
36 ~BacktraceState() {delete[] buffer
;}
39 SAL_DLLPUBLIC
std::unique_ptr
<BacktraceState
> backtrace_get(
40 sal_uInt32 backtraceDepth
);
42 SAL_DLLPUBLIC OUString
backtrace_to_string(BacktraceState
* backtraceState
);
50 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */