source: trunk/third/glib2/glib/gbacktrace.h @ 20721

Revision 20721, 2.4 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20720, which included commits to RCS files with non-trunk default branches.
Line 
1/* GLIB - Library of useful routines for C programming
2 * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19
20/*
21 * Modified by the GLib Team and others 1997-2000.  See the AUTHORS
22 * file for a list of people on the GLib Team.  See the ChangeLog
23 * files for a list of changes.  These files are distributed with
24 * GLib at ftp://ftp.gtk.org/pub/gtk/.
25 */
26
27#ifndef __G_BACKTRACE_H__
28#define __G_BACKTRACE_H__
29
30#include <glib/gtypes.h>
31
32G_BEGIN_DECLS
33
34/* Fatal error handlers.
35 * g_on_error_query() will prompt the user to either
36 * [E]xit, [H]alt, [P]roceed or show [S]tack trace.
37 * g_on_error_stack_trace() invokes gdb, which attaches to the current
38 * process and shows a stack trace.
39 * These function may cause different actions on non-unix platforms.
40 * The prg_name arg is required by gdb to find the executable, if it is
41 * passed as NULL, g_on_error_query() will try g_get_prgname().
42 */
43void g_on_error_query (const gchar *prg_name);
44void g_on_error_stack_trace (const gchar *prg_name);
45
46/* Hacker macro to place breakpoints for selected machines.
47 * Actual use is strongly discouraged of course ;)
48 */
49#if (defined (__i386__) || defined (__x86_64__)) && defined (__GNUC__) && __GNUC__ >= 2
50#  define G_BREAKPOINT()        G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END
51#elif defined (_MSC_VER) && defined (_M_IX86)
52#  define G_BREAKPOINT()        G_STMT_START{ __asm int 3h }G_STMT_END
53#elif defined (__alpha__) && !defined(__osf__) && defined (__GNUC__) && __GNUC__ >= 2
54#  define G_BREAKPOINT()        G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END
55#else   /* !__i386__ && !__alpha__ */
56#  define G_BREAKPOINT()        G_STMT_START{ raise (SIGTRAP); }G_STMT_END
57#endif  /* __i386__ */
58
59G_END_DECLS
60
61#endif /* __G_BACKTRACE_H__ */
Note: See TracBrowser for help on using the repository browser.