Version 4.2.0.1, tag libreoffice-4.2.0.1
[LibreOffice.git] / sal / osl / unx / backtrace.h
blob04e39538323ce36b03b69cd0a57f3678aff2dd7e
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/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 #if defined (SOLARIS) || defined (FREEBSD) || defined (NETBSD) || \
22 defined (OPENBSD) || defined (DRAGONFLY) || defined (MACOSX)
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
28 /* backtrace function with same behaviour as defined in GNU libc */
30 int backtrace( void **buffer, int max_frames );
32 void backtrace_symbols_fd( void **buffer, int size, int fd );
34 /* no frame.h on FreeBSD */
35 #if defined (FREEBSD) || defined (NETBSD) || defined (OPENBSD) || \
36 defined (DRAGONFLY)
37 struct frame {
38 long arg0[8];
39 long arg1[6];
40 struct frame *fr_savfp;
41 long fr_savpc;
43 #endif
46 #ifdef __cplusplus
47 } /* extern "C" */
48 #endif
50 #endif /* defined SOLARIS || FREEBSD || NETBSD || OPENBSD */
52 #if defined (LINUX)
53 #include <execinfo.h>
54 #endif
56 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */