/* PIKA - Photo and Image Kooker Application * a rebranding of The GNU Image Manipulation Program (created with heckimp) * A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio * * Original copyright, applying to most contents (license remains unchanged): * Copyright (C) 1995 Spencer Kimball and Peter Mattis * * pikabacktrace.h * Copyright (C) 2018 Ell * * 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 3 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, see . */ #ifndef __PIKA_BACKTRACE_H__ #define __PIKA_BACKTRACE_H__ typedef struct _PikaBacktraceAddressInfo PikaBacktraceAddressInfo; struct _PikaBacktraceAddressInfo { gchar object_name[256]; gchar symbol_name[256]; guintptr symbol_address; gchar source_file[256]; gint source_line; }; void pika_backtrace_init (void); gboolean pika_backtrace_start (void); void pika_backtrace_stop (void); PikaBacktrace * pika_backtrace_new (gboolean include_current_thread); void pika_backtrace_free (PikaBacktrace *backtrace); gint pika_backtrace_get_n_threads (PikaBacktrace *backtrace); guintptr pika_backtrace_get_thread_id (PikaBacktrace *backtrace, gint thread); const gchar * pika_backtrace_get_thread_name (PikaBacktrace *backtrace, gint thread); gboolean pika_backtrace_is_thread_running (PikaBacktrace *backtrace, gint thread); gint pika_backtrace_find_thread_by_id (PikaBacktrace *backtrace, guintptr thread_id, gint thread_hint); gint pika_backtrace_get_n_frames (PikaBacktrace *backtrace, gint thread); guintptr pika_backtrace_get_frame_address (PikaBacktrace *backtrace, gint thread, gint frame); gboolean pika_backtrace_get_address_info (guintptr address, PikaBacktraceAddressInfo *info); #endif /* __PIKA_BACKTRACE_H__ */