diff options
author | Karel Klic <kklic@redhat.com> | 2009-11-11 19:08:50 +0100 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2009-11-11 19:08:50 +0100 |
commit | 179fcfcc6d9d0aa19c6e7f36ce9e8d453bb99793 (patch) | |
tree | 0101b65845f7fa91794f99766d8f7ef2c95620c4 /src/Backtrace/backtrace.h | |
parent | 3a0b5daaaa268e1ac384a4d754fdd2e9a9608171 (diff) | |
download | abrt-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.h | 63 |
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 |