summaryrefslogtreecommitdiffstats
path: root/src/Backtrace/backtrace.h
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2009-11-11 19:08:50 +0100
committerKarel Klic <kklic@redhat.com>2009-11-11 19:08:50 +0100
commit179fcfcc6d9d0aa19c6e7f36ce9e8d453bb99793 (patch)
tree0101b65845f7fa91794f99766d8f7ef2c95620c4 /src/Backtrace/backtrace.h
parent3a0b5daaaa268e1ac384a4d754fdd2e9a9608171 (diff)
downloadabrt-179fcfcc6d9d0aa19c6e7f36ce9e8d453bb99793.tar.gz
abrt-179fcfcc6d9d0aa19c6e7f36ce9e8d453bb99793.tar.xz
abrt-179fcfcc6d9d0aa19c6e7f36ce9e8d453bb99793.zip
Backtrace tool WORK-IN-PROGRESS
Diffstat (limited to 'src/Backtrace/backtrace.h')
-rw-r--r--src/Backtrace/backtrace.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/Backtrace/backtrace.h b/src/Backtrace/backtrace.h
new file mode 100644
index 00000000..f42cfcd8
--- /dev/null
+++ b/src/Backtrace/backtrace.h
@@ -0,0 +1,63 @@
+/*
+ Copyright (C) 2009 RedHat inc.
+
+ 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 2 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, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+#ifndef BACKTRACE_H
+#define BACKTRACE_H
+
+#include <stdio.h>
+#include <stdbool.h>
+
+struct frame
+{
+ char *function;
+ char *args;
+ int number;
+ char *binfile;
+ char *sourcefile;
+ bool crash;
+ struct frame *next;
+};
+
+struct thread
+{
+ int number;
+ struct frame *frames;
+ struct thread *next;
+};
+
+struct backtrace
+{
+ struct thread *threads;
+};
+
+extern struct frame *frame_new();
+extern void frame_free(struct frame *f);
+extern struct frame *frame_add_sibling(struct frame *a, struct frame *b);
+
+extern struct thread *thread_new();
+extern void thread_free(struct thread *t);
+extern struct thread *thread_add_sibling(struct thread *a, struct thread *b);
+
+extern struct backtrace *backtrace_new();
+extern void backtrace_free(struct backtrace *bt);
+/* Prints how internal backtrace representation looks to stdout. */
+extern void backtrace_print_tree(struct backtrace *bt);
+
+/* Defined in parser.y. */
+extern struct backtrace *do_parse(FILE *input, bool debug_parser, bool debug_scanner);
+
+#endif