diff options
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | btparser/COPYING | 339 | ||||
-rw-r--r-- | btparser/ChangeLog | 544 | ||||
-rw-r--r-- | btparser/Makefile.am | 38 | ||||
-rw-r--r-- | btparser/NEWS | 120 | ||||
-rw-r--r-- | btparser/README | 38 | ||||
-rw-r--r-- | btparser/TODO | 19 | ||||
-rwxr-xr-x | btparser/autogen.sh | 1 | ||||
-rw-r--r-- | btparser/btparser.1 | 40 | ||||
-rw-r--r-- | btparser/btparser.c | 189 | ||||
-rw-r--r-- | btparser/btparser.pc.in | 10 | ||||
-rw-r--r-- | btparser/btparser.spec.in | 68 | ||||
-rw-r--r-- | btparser/configure.ac | 24 | ||||
-rw-r--r-- | btparser/tests/package.m4 | 13 | ||||
-rw-r--r-- | btparser/tests/testsuite.at | 8 | ||||
-rw-r--r-- | configure.ac | 9 | ||||
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/btparser/Makefile.am (renamed from btparser/lib/Makefile.am) | 9 | ||||
-rw-r--r-- | src/btparser/backtrace.c (renamed from btparser/lib/backtrace.c) | 0 | ||||
-rw-r--r-- | src/btparser/backtrace.h (renamed from btparser/lib/backtrace.h) | 0 | ||||
-rw-r--r-- | src/btparser/frame.c (renamed from btparser/lib/frame.c) | 0 | ||||
-rw-r--r-- | src/btparser/frame.h (renamed from btparser/lib/frame.h) | 0 | ||||
-rw-r--r-- | src/btparser/location.c (renamed from btparser/lib/location.c) | 0 | ||||
-rw-r--r-- | src/btparser/location.h (renamed from btparser/lib/location.h) | 0 | ||||
-rw-r--r-- | src/btparser/normalize.c (renamed from btparser/lib/normalize.c) | 0 | ||||
-rw-r--r-- | src/btparser/normalize.h (renamed from btparser/lib/normalize.h) | 0 | ||||
-rw-r--r-- | src/btparser/normalize_dbus.c (renamed from btparser/lib/normalize_dbus.c) | 0 | ||||
-rw-r--r-- | src/btparser/normalize_gdk.c (renamed from btparser/lib/normalize_gdk.c) | 0 | ||||
-rw-r--r-- | src/btparser/normalize_glib.c (renamed from btparser/lib/normalize_glib.c) | 0 | ||||
-rw-r--r-- | src/btparser/normalize_glibc.c (renamed from btparser/lib/normalize_glibc.c) | 0 | ||||
-rw-r--r-- | src/btparser/normalize_libstdcpp.c (renamed from btparser/lib/normalize_libstdcpp.c) | 0 | ||||
-rw-r--r-- | src/btparser/normalize_linux.c (renamed from btparser/lib/normalize_linux.c) | 0 | ||||
-rw-r--r-- | src/btparser/normalize_xorg.c (renamed from btparser/lib/normalize_xorg.c) | 0 | ||||
-rw-r--r-- | src/btparser/strbuf.c (renamed from btparser/lib/strbuf.c) | 0 | ||||
-rw-r--r-- | src/btparser/strbuf.h (renamed from btparser/lib/strbuf.h) | 0 | ||||
-rw-r--r-- | src/btparser/thread.c (renamed from btparser/lib/thread.c) | 0 | ||||
-rw-r--r-- | src/btparser/thread.h (renamed from btparser/lib/thread.h) | 0 | ||||
-rw-r--r-- | src/btparser/utils.c (renamed from btparser/lib/utils.c) | 0 | ||||
-rw-r--r-- | src/btparser/utils.h (renamed from btparser/lib/utils.h) | 0 | ||||
-rw-r--r-- | src/daemon/Makefile.am | 2 | ||||
-rw-r--r-- | src/daemon/abrt-action-generate-backtrace.c | 6 | ||||
-rw-r--r-- | tests/Makefile.am (renamed from btparser/tests/Makefile.am) | 11 | ||||
-rw-r--r-- | tests/atlocal.in (renamed from btparser/tests/atlocal.in) | 2 | ||||
-rw-r--r-- | tests/btparser/Makefile.am | 15 | ||||
-rw-r--r-- | tests/btparser/backtrace.at (renamed from btparser/tests/backtrace.at) | 0 | ||||
-rw-r--r-- | tests/btparser/backtraces/621492.bt (renamed from btparser/tests/backtraces/621492.bt) | 0 | ||||
-rw-r--r-- | tests/btparser/frame.at (renamed from btparser/tests/frame.at) | 0 | ||||
-rw-r--r-- | tests/btparser/strbuf.at (renamed from btparser/tests/strbuf.at) | 0 | ||||
-rw-r--r-- | tests/btparser/thread.at (renamed from btparser/tests/thread.at) | 0 | ||||
-rw-r--r-- | tests/btparser/utils.at (renamed from btparser/tests/utils.at) | 0 | ||||
-rw-r--r-- | tests/local.at (renamed from btparser/tests/local.at) | 0 | ||||
-rw-r--r-- | tests/testsuite.at | 8 |
52 files changed, 41 insertions, 1476 deletions
diff --git a/Makefile.am b/Makefile.am index 09d00544..6303e738 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = btparser lib src inc po icons +SUBDIRS = lib src inc po icons DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) diff --git a/btparser/COPYING b/btparser/COPYING deleted file mode 100644 index d511905c..00000000 --- a/btparser/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - 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. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/btparser/ChangeLog b/btparser/ChangeLog deleted file mode 100644 index b2e36bbf..00000000 --- a/btparser/ChangeLog +++ /dev/null @@ -1,544 +0,0 @@ -2010-10-14 Karel Klíč <kklic@redhat.com> - - * configure.ac: Increase version to 0.7. - - * tests/strbuf.at: New file, includes tests for - btp_strbuf_append_char and btp_strbuf_append_str. - - * README: Fixed a typo. - - * TODO: Updated. Includes list of functions which need a test in - the testsuite. - - * lib/Makefile.am (libbtparser_la_LDFLAGS): Increase current - interface version. - - * lib/utils.c (btp_file_to_string): Use open, lseek, read, close - instead of fopen, fseek, fread, fclose. - - * lib/normalize_dbus.c (btp_normalize_dbus_thread): - * lib/normalize_gdk.c (btp_normalize_gdk_thread): - * lib/normalize_glib.c (btp_normalize_glib_thread): - * lib/normalize_glibc.c (btp_normalize_glibc_thread): - * lib/normalize_libstdcpp.c (btp_normalize_libstdcpp_thread): - * lib/normalize_linux.c (btp_normalize_linux_thread): - * lib/normalize_xorg.c (btp_normalize_xorg_thread): Store - next_frame at the beginning of block to simplify the code a - bit. - -2010-09-23 Karel Klíč <kklic@redhat.com> - - * Makefile.am (EXTRA_DIST): Added autogen.sh. - -2010-09-22 Karel Klíč <kklic@redhat.com> - - * Released as btparser-0.6. - - * NEWS (Changes): Document recent changes. - - * lib/frame.h, lib/frame.c (btp_frame_parse_header): Simplified - the function interface. Now it returns a pointer to frame or NULL - in the case of failure. The frame argument was removed. - * lib/frame.c (btp_frame_parse): - * tests/frame.at (btp_frame_parse_header): Keep up with the - btp_frame_parse_header interface change. - - * lib/backtrace.h, lib/backtrace.c (btp_backtrace_parse): - Simplified the function interface. Now it returns a pointer to - backtrace or NULL in the case of failure. The backtrace argument - was removed. - * btparser.c (main): - * tests/backtrace.at (btp_backtrace_find_crash_thread) - (btp_backtrace_limit_frame_depth, btp_backtrace_quality_complex): - Keep up with the btp_backtrace_parse interface change. - - * lib/thread.h, lib/thread.c (btp_thread_parse): Simplified the - function interface. Now it returns a pointer to thread or NULL in - the case of failure. The thread argument was removed. - * tests/thread.at (btp_thread_parse, btp_thread_parse-locations): - * lib/backtrace.c (btp_backtrace_parse): Keep up with the - btp_thread_parse interface change. - - * tests/frame.at (btp_frame_parse): Check whether the expected_frame is - NULL when the frame is also NULL. - -2010-09-21 Karel Klíč <kklic@redhat.com> - - * lib/frame.h, lib/frame.c (btp_frame_parse): Simplified the - function interface. Now it returns a pointer to frame or NULL in - the case of failure. The frame argument was removed. - * tests/frame.at (btp_frame_parse): - * lib/backtrace.c (btp_backtrace_parse_header): - * lib/thread.c (btp_thread_parse): Keep up with the - btp_frame_parse interface change. - - * lib/utils.h, lib/utils.c: Removed unused function - btp_parse_regexp. - - * tests/utils.at: Removed a test for btp_parser_regexp. - -2010-09-20 Karel Klíč <kklic@redhat.com> - - * lib/normalize_dbus.h, lib/normalize_gdk.h, normalize_glib.h: - * normalize_glibc.h, normalize_libstdcpp.h, normalize_linux.h: - * normalize_xorg.h: Function definitions were moved to - normalize.h, and these header files were removed. - - * lib/Makefile.am, lib/backtrace.c, lib/normalize.c: - * lib/normalize.h, lib/normalize_dbus.c, lib/normalize_gdk.c: - * lib/normalize_glib.c, lib/normalize_glibc.c: - * lib/normalize_libstdcpp.c, lib/normalize_libstdcpp.c: - * lib/normalize_xorg.c: Keep up with the normalize_*.h removal. - - * lib/normalize_glib.c (btp_normalize_glib_thread): Optimized and - simplified the IA__ prefix removal code. - - * lib/normalize_glibc.c (btp_normalize_glibc_thread): Used strcpy - instead of free and strdup functions in the - NORMALIZE_ARCH_SPECIFIC macro. - - * tests/backtrace.at (btp_backtrace_remove_threads_except_one): - Include required stdlib.h header. - - * lib/backtrace.h, lib/frame.h, lib/thread.h, lib/utils.h: Moved includes - section out of extern "C" section. - - * lib/backtrace.h, lib/frame.h, lib/normalize.h: - * lib/normalize_dbus.h, lib/normalize_gdk.h, lib/normalize_glib.h: - * lib/normalize_glibc.h, lib/normalize_libstdcpp.h: - * lib/normalize_linux.h, lib/normalize_xorg.h, lib/thread.h: - Removed /* Declarations */ comment. - - * lib/backtrace.h, lib/frame.h, lib/thread.h: Removed superfluous - stdio.h include. - - * lib/backtrace.c, lib/frame.c: Include required header stdio.h. - - * NEWS: Document recent changes. - - * lib/backtrace.h, lib/backtrace.c (btp_backtrace_dup): - * lib/frame.h, lib/frame.c (btp_frame_dup): - * lib/thread.h, lib/thread.c (btp_thread_dup): Remove the shallow - parameter to simplify the interface. - - * tests/frame.at (btp_frame_dup): - * lib/backtrace.c (btp_backtrace_quality_complex) - (btp_backtrace_get_crash_frame) - (btp_backtrace_get_duplication_hash, btp_backtrace_parse): - * lib/frame.c (btp_frame_parse_header): - * lib/thread.c (btp_thread_parse): Keep up with the shallow - parameter removal. - - * configure.ac: Increase version to 0.6. - - * lib/frame.h, lib/frame.c: Function btp_frame_eq0 was renamed to - btp_frame_calls_func, btp_frame_eq1 was renamed to - btp_frame_calls_func_in_file, btp_frame_eq2 was renamed to - btp_frame_calls_func_in_file2, btp_frame_eq3 was renamed to - btp_frame_calls_func_in_file3, btp_frame_eq4 was renamed to - btp_frame_calls_func_in_file4. - - * lib/normalize_dbus.c, lib/normalize_gdk.c, lib/normalize_glib.c: - Keep up with the renames. - * lib/normalize_glibc.c, lib/normalize_libstdcpp.c: Likewise. - * lib/normalize_linux.c, lib/normalize_xorg.c: Likewise. - -2010-09-02 Nikola Pajkovský <npajkovsk@redhat.com> - - * lib/utils.c (btp_file_to_string): Use %zd instead of %d in a - fprintf call to allow compilation on 64-bit architectures. - -2010-08-31 Karel Klíč <kklic@redhat.com> - - * Released as btparser-0.5. - - * NEWS: Document the fix of rhbz#592523. - - * configure.ac: Changed version to 0.5. - - * lib/normalize.c (btp_normalize_thread): If the last frame has - address 0x0000 and its name is '??', remove it. This frame is not - really invalid, and it affects backtrace quality rating. See Red - Hat Bugzilla bug #592523. - -2010-08-30 Karel Klíč <kklic@redhat.com> - - * Released as btparser-0.4. - - * NEWS: RPM spec news. - - * Makefile.am: Added 'rpm' and 'srpm' targets. - - * btparser.spec.in: Newly created RPM spec file. - - * Released as btparser-0.3. - - * configure.ac, Makefile.am: Generate and distribute btparser.pc. - - * btparser.pc.in: New file - template for pkg-config metadata file - btparser.pc. - - * tests/Makefile.am (package.m4): Do not depend on configure.ac, - but depend on the Makefile.in directly. Removed $srcdir prefix as - it's superfluous. - - * tests/frame.at: Added a test for btp_frame_dup function. - - * README: Added a "what is btparser" section. - - * lib/frame.h: Added documentation to functions btp_frame_eq0, - btp_frame_eq1, btp_frame_eq2, and btp_frame_eq3. - - * configure.ac: Increase version to 0.3. - -2010-08-28 Karel Klíč <kklic@redhat.com> - - * Released as btparser-0.2. - - * tests/Makefile.am (EXTRA_DIST): Added backtrace subdirectory to - EXTRA_DIST, as it should be a part of the distribution. - -2010-08-27 Karel Klíč <kklic@redhat.com> - - * NEWS: Add duplication hash quality comparison of various - versions of btparser. Add parser precision comparison with - abrt-backtrace utility. - - * README: Removed older parser precision comparison. - - * TODO: Remove finished tasks. - - * btparser.1: Synchronize with btparser interface changes. Old - options removed, new options documented. - - * btparser.c: --debug short option changed from -p to -d. - Fixed a typo in an error message. - - * lib/backtrace.c - (btp_backtrace_find_crash_thread_from_crash_frame): Display - debugging information when btp_debug_parser is enabled. - (btp_backtrace_quality_complex): Use btp_normalize_backtrace so - that the quality is measured on the normalized backtrace. The - quality near the crash frame now includes the top 5 frames of the - normalized thread. - (btp_backtrace_get_crash_frame): Use btp_normalize_backtrace to - find the crash frame. A disadvantage of backtrace normalization is - that the frame returned is a duplicate and must be released by the - function caller. - (btp_backtrace_get_duplication_hash): Use btp_normalize_backtrace, - and the limit the frame depth to 3 frames to get the duplication - hash. - - * lib/backtrace.h ( btp_backtrace_get_crash_frame): Document the - need to release the returned frame by btp_frame_free(). - - * lib/frame.c, lib/frame.h: New functions btp_frame_eq0, - btp_frame_eq1, btp_frame_eq2, btp_frame_eq3, and btp_frame_eq4. - - * lib/normalize.c, lib/normalize.h: New functions - btp_normalize_thread and btp_normalize_backtrace. - - * lib/ops.c: Renamed to normalize.c. - * lib/ops.h: Renamed to normalize.h. - * lib/ops-dbus.h, lib/ops-dbus.c, lib/ops-gdk.c, - lib/ops-gdk.h:Renamed to normalize_xxx.[ch]. - * lib/ops-glib.c, lib/ops-glib.h, lib/ops-glibc.c: Likewise. - * lib/ops-glibc.h, lib/ops-libstdcpp.c, lib/ops-libstdcpp.h: - Likewise. - * lib/ops-linux.c, lib/ops-linux.h, lib/ops-xorg.c: Likewise. - * lib/ops-xorg.h: Likewise. - - * lib/Makefile.am: Synchronize with the file renaming. - - * scripts/btparser-bz-downloader: Rewritten to get the search - results first, then sort the bugs depending on last update time, - then fetch the data. Added more progress logging output. - - * scripts/btparser-cache-dupchecker: Simplified data - structures. Added more logging, and change existing output to be - clearer. Only include Fedora bugs in dupclosecount. - - * scripts/btparser-cache-improvetips: Use the new btparser command - line interface instead of the now-defunct old one. - -2010-08-25 Karel Klíč <kklic@redhat.com> - - * lib/ops-glibc.c (btp_glibc_frame_is_exit): raise() might be in - libpthread.so. - - * btparser.c (main): Fixed a typo in an error message. - - * scripts/btparser-compare: Removed. - - * scripts/btparser-compare-all: Renamed to btparser-cache-compare. - - * lib/frame.c (btp_frame_parse_file_location): Added an underscore - to supported file name characters. - (btp_frame_parseadd_operator): Do not modify the parameter target - unless the operator is really detected. - - * lib/frame.h (btp_frame_parseadd_operator): Mention that the - target buffer is not modified if no operator is found. - - * tests/frame.at: Several tests were extended to catch more cases. - - * scripts/btparser-cache-dupchecker: Adapted to the new btparser - command line interface. - * scripts/btparser-cache-improvetips: Likewise. - - * scripts/btparser-compare-all: Read the backtraces from the cache - subdirectory, where they usually resides, not from the current - directory. - - * TODO: New file. - - * configure.ac: Increase version to 0.2. - - * tests/backtrace.at: New file. Added tests of - btp_backtrace_remove_threads_except_one, - btp_backtrace_find_crash_thread, btp_backtrace_limit_frame_depth, - btp_backtrace_quality_complex. - - * lib/backtrace.c (btp_backtrace_get_duplication_hash): Do not - free the backtrace before creating a textual representation of it. - - * lib/frame.c (btp_frame_dup): Fix the duplication crash when run - with siblings parameter set to true. - - * lib/thread.c (btp_thread_dup): Fix the duplication crash when - run with siblings parameter set to true. - (btp_thread_get_frame_count): Rename variable 'f' to 'frame' to - improve code readability. - -2010-08-24 Karel Klíč <kklic@redhat.com> - - * btparser.c: Rewritten to use the new functions - btp_backtrace_quality_complex, btp_backtrace_get_crash_frame, - btp_backtrace_get_duplication_hash. New user interface. - - * lib/backtrace.h: Extended the documentation of most - functions. Fixed the documentation alignment. Removed extern - keyword from function declarations. - - * lib/backtrace.h, lib/backtrace.c: Renamed function - btp_backtrace_quality to btp_backtrace_quality_simple. Implemented - new functions btp_backtrace_quality_complex, - btp_backtrace_get_crash_frame, btp_backtrace_get_duplication_hash. - - * lib/backtrace.c (btp_backtrace_limit_frame_depth): Reimplemented - using the new function btp_thread_remove_frames_below_n. - (btp_backtrace_find_crash_thread_from_crash_frame): Marked as - 'static'. Made the code more readable. - (btp_backtrace_remove_threads_except_one): Renamed parameter 'one' - to 'thread'. Renamed 'rm' to 'delete_thread'. - - * lib/ops.h, lib/ops.c: Implement new functions - btp_ops_backtrace_remove_redundant_frames and - btp_ops_frame_is_redundant. - (tp_ops_thread_remove_redundant_frames): Use - btp_ops_frame_is_redundant. - - * tests/thread.at (btp_thread_parse-locations) - (btp_thread_remove_frames_below_n, btp_thread_remove_frames_above) - (btp_thread_remove_frame): New tests. - - * lib/thread.h: Removed extern keyword from function - declarations. Extended the documentation of all functions. - - * lib/thread.h, lib/thread.c: Renamed the function - btp_thread_rating to btp_thread_quality_counts. Implemented new - functions btp_thread_quality, btp_thread_remove_frame, - btp_thread_remove_frames_above, btp_thread_remove_frames_below_n. - - * lib/thread.c (btp_thread_append_to_str): More precise error - messages. Fixed adding a line to the location for the just-parsed - thread header line. - - * lib/frame.c (btp_frame_add_sibling): Do not return a value. - (btp_frame_parse_frame_start): Do not modify input if the parsing - failed and the function is returning 0. Calculate the returned - value more efficiently in the case of parsing success. - - * lib/frame.h: Massively extended documentation of all functions. - Removed extern keyword from function declarations. - - * lib/ops-gdk.h, lib/ops-glib.h, lib/ops-libstdcpp.h: Remove - extern keyword from function declarations. - * lib/ops-linux.h, lib/ops-xorg.h, lib/location.h: Likewise. - * lib/ops-glibc.h: Likewise. Plus the documentation has been - extended. - - * lib/utils.h: Remove extern keyword from function - declarations. Fix the documentation indentation. - - * lib/strbuf.c (btp_strbuf_free): Do not crash if the provided - pointer is NULL. - - * lib/strbuf.h: Properly document all functions and the struct - strbuf. - - * tests/local.at (AT_TESTFUN): Autotest ignores the stdout and - stderr of the testing C program. - - * tests/frame.at (btp_frame_parseadd_operator): Check the parsed - length. Output helper data to stdout. Added a check for an - invalid operator. - (btp_frame_parse_function_name, btp_frame_parse_function_call): - Output helper data to stdout. - -2010-08-23 Karel Klíč <kklic@redhat.com> - - * lib/frame.h: Small documentation fixes. - - * lib/location.h (btp_location_add, btp_location_add_ext) - (btp_location): Add a documentation. - (btp_location_eat_char, btp_location_eat_char_ext): Fixed the - documentation grammar, and extended. - -2010-08-20 Karel Klíč <kklic@redhat.com> - - * lib/location.h, lib/location.c (btp_location_eat_char): New - function. - - * lib/frame.c (btp_frame_parseadd_operator) - (btp_frame_parse_function_name_chunk) - (btp_frame_parse_function_name_braces) - (btp_frame_parse_function_name_template): Return an integer - representing the number of parsed characters, instead of a boolean - indicating success. - (btp_frame_parse_function_name) - (btp_frame_skip_function_args): Added a location parameter, and - implemented the location support. - - * lib/frame.h (btp_frame_parseadd_operator) - (btp_frame_parse_function_name) - (btp_frame_parse_function_name_template) - (btp_frame_parse_function_name_braces) - (btp_frame_parse_function_name_chunk): Added documentation. - - * tests/frame.at (btp_frame_parse_frame_start): Added comments and - made the code more readable. - (btp_frame_parseadd_operator): Update the test to check for the - returned integer value. - (btp_frame_parse_function_name, btp_frame_skip_function_args): - Update the test to use location parameter. The value returned in - this parameter is not checked for correctness yet. - -2010-08-16 Karel Klíč <kklic@redhat.com> - - * tests/frame.at, tests/thread.at: Keep up with the function - interface changes. - - * tests/utils.at: Keep up with interface changes. Added new tests - for functions btp_strspn_location, btp_skip_char, - btp_skip_char_limited, btp_skip_char_sequence, btp_skip_char_span, - btp_skip_char_span_location, btp_parse_char_span, btp_skip_string, - btp_skip_unsigned_integer, btp_parse_unsigned_integer. - - * lib/utils.h: New functions btp_strspn_location and - btp_skip_char_span_location. Functions btp_skip_char_sequence, - btp_skip_char_span, btp_parse_char_span, btp_skip_string, - btp_skip_unsigned_integer, btp_parse_unsigned_integer, - btp_skip_hexadecimal_number, and btp_parse_hexadecimal_number - return an integer (indicating the number of characters processed) - instead of a boolean (indicating success/failure). This change is - neccessary for implementing proper error reporting with - line/column error location. - - * lib/thread.c (btp_thread_parse): Added the location parameter, - and implemented its usage. - - * lib/thread.h: Added the location parameter to the function - btp_thread_parse. - - * lib/frame.c (btp_frame_parse, btp_frame_parse_function_call): - Added the location parameter, but the location feature has not - been fully implemented yet. - (btp_frame_parse_frame_start): Returns the number of characters - parsed from input. - (btp_frame_parseadd_operator, btp_frame_parse_function_name): - Adapted to the changes of other functions. - (btp_frame_parse_address_in_function) - (btp_frame_parse_file_location, btp_frame_parse_header): Added the - location parameter, and implemented its usage. - - * lib/frame.h: Add the location parameter to functions - btp_frame_parse, btp_frame_parse_function_call, - btp_frame_parse_address_in_function, - btp_frame_parse_file_location, btp_frame_parse_header. Function - btp_frame_parse_frame_start returns int instead of bool. It - returns the number of characters parsed from input. - - * lib/backtrace.c (btp_backtrace_parse): Use the newly added - location parameter of btp_thread_parse and btp_frame_parse - functions. - -2010-08-05 Karel Klíč <kklic@redhat.com> - - * tests/utils.at: Added btp_strcmp0, btp_strchr_location, and - btp_strstr_location tests. - - * lib/utils.c (btp_strcmp0): Changed it so that NULL value is - considered to be "less" than an existing string. - - * tests/utils.at: Renamed parser_elements.at to utils.at. - - * tests/frame.at: Renamed parser_frame.at to frame.at. - - * tests/thread.at: Renamed parser_thread.at to thread.at. - - * lib/utils.h: Extended the interface documentation. Added new - functions btp_strchr_location and btp_strstr_location. - - * lib/utils.c: Implemented new functions added to lib/utils.h. - - * lib/backtrace.h: Extended the interface documentation. Added - location parameter to functions btp_backtrace_parse and - btp_backtrace_parse_header. - - * lib/backtrace.c (btp_backtrace_parse) - (btp_backtrace_parse_header): Added location support. - - * btparser.c: Updated to use the new location feature. - - * lib/location.h, lib/location.c: New struct btp_location and - associated helper functions. - - * lib/Makefile.am (libbtparser_la_SOURCES): Added location.h and - location.c. - (pkginclude_HEADERS): Added location.h. - - * scripts/btparser-bz-downloader: Skip bug downloading when - bug.info file already exists. Ask server for component owner only - if it's not already available. - (getbug): New method, repeats Bugzilla XML/RPC request if Bugzilla - fails to answer. - - * scripts/btparser-cache-dupchecker: Put back --verbose option. - Fixed an exception when adding a bug to component-bugs hash. - - * btparser.c (main): Added a newline to an error message. - -2010-07-29 Karel Klíč <kklic@redhat.com> - - * scripts/btparser-bz-downloader: Properly serialize duplicates. - - * scripts/btparser-bz-improvetips: btparser trims the backtrace - output like ABRT does. Properly deserialize duplicates from the - input file. - -2010-07-28 Karel Klíč <kklic@redhat.com> - - * scripts/btparser-bz-improvetips: New script. It checks that the - bugs marked as duplicates in Bugzilla are recognized as duplicates - by btparser. - - * scripts/btparser-bz-downloader: New script. Downloads - ABRT-reported backtraces from Bugzilla. - - * scripts/btparser-compare-all: Added some comments. - -2010-06-21 Karel Klíč <kklic@redhat.com> - - * configure.ac: Added AM_MAINTAINER_MODE. - * Makefile.am: Add 'upload' target to .PHONY. diff --git a/btparser/Makefile.am b/btparser/Makefile.am deleted file mode 100644 index dae5e137..00000000 --- a/btparser/Makefile.am +++ /dev/null @@ -1,38 +0,0 @@ -SUBDIRS = lib tests - -bin_PROGRAMS = btparser -btparser_CFLAGS = -Wall -Werror -btparser_SOURCES = btparser.c -btparser_LDADD = lib/libbtparser.la - -man_MANS = btparser.1 -EXTRA_DIST = $(man_MANS) - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = btparser.pc -DISTCLEANFILES = $(pkgconfig_DATA) -EXTRA_DIST += btparser.pc.in - -EXTRA_DIST += autogen.sh - -UPLOAD_URI = klic.name:/home/karel/public_html/ftp.klic.name/public/btparser -.PHONY: upload -upload: - make dist-gzip - scp $(distdir).tar.gz $(UPLOAD_URI) - make dist-zip - scp $(distdir).zip $(UPLOAD_URI) - make dist-xz - scp $(distdir).tar.xz $(UPLOAD_URI) - -RPM_DIRS = --define "_sourcedir `pwd`" \ - --define "_rpmdir `pwd`" \ - --define "_specdir `pwd`" \ - --define "_builddir `pwd`" \ - --define "_srcrpmdir `pwd`" - -EXTRA_DIST += btparser.spec.in -rpm: dist-xz btparser.spec - rpmbuild $(RPM_DIRS) -ba btparser.spec -srpm: dist-xz btparser.spec - rpmbuild $(RPM_DIRS) -bs btparser.spec diff --git a/btparser/NEWS b/btparser/NEWS deleted file mode 100644 index 21f76d31..00000000 --- a/btparser/NEWS +++ /dev/null @@ -1,120 +0,0 @@ -== btparser 0.7 - -What's new: -- Small code cleanups -- Two tests were added - -== btparser 0.6 -Released 2010-09-23. - -Changes: -- Functions btp_frame_eq* were renamed to provide cleaner interface. -- Parameter `shallow` in functions btp_backtrace_dup, btp_thread_dup, - btp_frame_dup has been removed to simplify the interface. -- Interfaces of parser functions were modified to return - structures/NULL instead of bool. - -Bugs fixed: -- A compilation issue on 64-bit architecture with a fprintf - call using %d instead of %zd. - -See the ChangeLog file for more details. - -== btparser 0.5 -Released 2010-08-31. - -What's new: -- If the last frame has address 0x0000 and its name is '??', its - remove during backtrace normalization. This fixes rhbz#592523. - -== btparser 0.4 -Released 2010-08-30. - -What's new: -- RPM spec file has been added -- 'make rpm' and 'make srpm' works for testing purposes - -== btparser 0.3 -Released 2010-08-30. - -What's new: -- the interface documentation has been extended -- a proper README file was created -- a pkg-config metadata file support has been added -- some autotest code was added - -== btparser 0.2 -Released 2010-08-27. - -What's new: -- the API has been extensively reworked and simplified; user can call - the function btp_backtrace_quality_complex to get the quality of - the backtrace, function btp_backtrace_get_duplication_hash to get - the hash, and function btp_backtrace_get_crash_frame to get the - place where the program crashed -- location support: in the case of failure, the backtrace parser - reports line and column of the input string where the failure - occurred and a message describing what input was expected -- the command line options of the btparser utitity has been reduced - and simplified; you can now run `btparser file.bt --duplicate-hash` - to get the hash -- the normalization code was significantly improved; this results in - better backtrace hash quality - -=== Duplication hash quality -The hash quality has been significantly improved since btparser 0.1: - -./btparser-bz-improvetips: 3092 duplicates out of total 8051 -duplicates were _not_ recognized by btparser - -=== Parser precision -When compared to abrt-backtrace utility, the btparser's parser -provides better results. In a test comparing the parser results on -25685 backtraces, btparser was "better" in 726 cases. - -=== Parser speed -The btparser's parser is slightly slower than abrt-backtrace's parser. - -Measurement of how long it takes to parse 25685 backtraces: - btparser took 192.070000 seconds - abrt-backtrace took 181.230000 seconds - -== btparser 0.1 -Released 2010-06-15. - -Here is how btparser's hand-written parser became as good as -abrt-backtrace's bison parser on 2010-05-28: - -initial - -> parser quality: 1540 regressions out of 9015 - -newline allowed after function name in frame header - -> parser quality: 1391 regressions out of 9015 - -nonrecursive braces (with spaces) allowed in function name - -> parser quality: 1216 regressions out of 9015 - -recursive templates and braces, skip Python backtraces - -> parser quality: 336 regressions out of 9015 - -manually marking backtraces where the difference is caused by better -parser btparser - -> parser quality: 98 regressions out of 9015, 164 times was btparser - better - -support for operator> and similar - -> parser quality: 65 regressions out of 9015, 185 times was btparser - better - -support for type before function name and some more backtrace marking - -> parser quality: 59 regressions out of 9015, 191 times was btparser - better - -various small fixes of corner cases - -> parser quality: 0 regressions out of 9015, 241 times was btparser better - -btparser took 101.650000 seconds, abrt-backtrace took 105.260000 seconds - -=== Duplication hash quality -./btparser-bz-improvetips: 3976 duplicates out of total 7668 -duplicates were not recognized by btparser. diff --git a/btparser/README b/btparser/README deleted file mode 100644 index b2ed1bb3..00000000 --- a/btparser/README +++ /dev/null @@ -1,38 +0,0 @@ -What is btparser? - -btparser is a backtrace parser and analyzer, which works with -backtraces produced by the GNU Project Debugger. It can parse a text -file with a backtrace to a tree of C structures, allowing to analyze -the threads and frames of the backtrace and work with them. - -btparser also contains some backtrace manipulation and extraction -routines: -- it can find a frame in the crash-time backtrace where the program - most likely crashed (a chance is that the function described in that - frame is buggy) -- it can produce a duplication hash of the backtrace, which helps to - discover that two crash-time backtraces are duplicates, triggered by - the same flaw of the code -- it can "rate" the backtrace quality, which depends on the number of - frames with and without the function name known (missing function - name is caused by missing debugging symbols) - -== Speed measurement - -For speed measurment the best backtrace is 547367.bt. -Valgrind is very useful to see where the time is spent: -$ valgrind --tool=callgrind btparser 547367.bt -$ kcachegrind callgrind.out.11555 - -=== Do not use regexps! -$ time btparser --debug 547367.bt - -With single regexp in btp_frame_parse_file_location: -real 5m41.857s -user 5m29.894s -sys 0m0.573s - -Without it: -real 0m7.753s -user 0m0.761s -sys 0m0.173s diff --git a/btparser/TODO b/btparser/TODO deleted file mode 100644 index eac098ab..00000000 --- a/btparser/TODO +++ /dev/null @@ -1,19 +0,0 @@ -Write tests for more functions: -- btp_thread_dup -- btp_thread_cmp -- btp_thread_add_sibling -- btp_thread_get_frame_count -- btp_thread_quality_counts -- btp_thread_quality -- btp_backtrace_dup -- btp_backtrace_get_thread_count -- btp_backtrace_quality_simple -- btp_backtrace_to_text -- btp_backtrace_get_crash_frame -- btp_backtrace_get_duplication_hash -- btp_backtrace_parse -- btp_backtrace_parse_header - -Start writing a manual. - -Investigate more duplicates to find more normalization procedures. diff --git a/btparser/autogen.sh b/btparser/autogen.sh deleted file mode 100755 index 9a3daccf..00000000 --- a/btparser/autogen.sh +++ /dev/null @@ -1 +0,0 @@ -autoreconf --install --force diff --git a/btparser/btparser.1 b/btparser/btparser.1 deleted file mode 100644 index a9ca0412..00000000 --- a/btparser/btparser.1 +++ /dev/null @@ -1,40 +0,0 @@ -.TH btparser "1" "24 May 2010" "" -.SH NAME -btparser \- a backtrace analyzer -.SH SYNOPSIS -.B btparser -[option]... [FILE] -.SH DESCRIPTION -.I btparser -is a command line tool that analyzes backtraces produced by -GDB and provides their textual representation useful for -crash duplication detection. - -By default, btparser prints the backtrace tree created by -parsing the input file. - -.SH OPTIONS -.B Basic startup options -.IP "\-V, \-\-version" -Displays version of btparser. -.IP "\-?, \-\-help" -Print a help message describing all of btparser’s command-line options. - -.PP -.B Actions -.IP "\-r, \-\-rate" -Print a float number between 0 and 1, representing the quality of the -backtrace. -.IP "\-c, \-\-crash\-function" -Print the name of the function where the program crashed, if it's -successfully detected. -.IP "\-h, \-\-duplicate\-hash" -Print a short, textual representation of the backtrace, useful for -detecting the backtrace duplicates. - -.PP -.B Additional options -.IP "\-d, \-\-debug" -Prints debug information when scanning/parsing the backtrace. -.IP "\-v, \-\-verbose" -Print more output than usual. diff --git a/btparser/btparser.c b/btparser/btparser.c deleted file mode 100644 index a15354ae..00000000 --- a/btparser/btparser.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - btparser.c - backtrace parsing tool - - Copyright (C) 2010 Red Hat, 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. -*/ -#include "lib/backtrace.h" -#include "lib/thread.h" -#include "lib/frame.h" -#include "lib/utils.h" -#include "lib/location.h" -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <argp.h> -#include <sysexits.h> -#include <assert.h> - -const char *argp_program_version = "btparser " VERSION; -const char *argp_program_bug_address = "<kklic@redhat.com>"; - -static char doc[] = "btparser -- backtrace parser"; - -/* A description of the arguments we accept. */ -static char args_doc[] = "FILE"; - -static struct argp_option options[] = { - {"rate" , 'r', 0, 0, "Prints the backtrace rating from 0 to 1"}, - {"crash-function" , 'c', 0, 0, "Prints crash function"}, - {"duplication-hash", 'h', 0, 0, "Prints normalized string useful for hash calculation"}, - {"debug" , 'd', 0, 0, "Prints parser debug information"}, - {"verbose" , 'v', 0, 0, "Prints human-friendly superfluous output."}, - { 0 } -}; - -enum what_to_output -{ - BACKTRACE, - RATE, - CRASH_FUNCTION, - DUPLICATION_HASH -}; - -struct arguments -{ - enum what_to_output output; - bool debug; - bool verbose; - char *filename; -}; - -static error_t -parse_opt (int key, char *arg, struct argp_state *state) -{ - /* Get the input argument from argp_parse, which we - know is a pointer to our arguments structure. */ - struct arguments *arguments = (struct arguments*)state->input; - - switch (key) - { - case 'r': arguments->output = RATE; break; - case 'c': arguments->output = CRASH_FUNCTION; break; - case 'h': arguments->output = DUPLICATION_HASH; break; - case 'd': arguments->debug = true; break; - case 'v': arguments->verbose = true; break; - case ARGP_KEY_ARG: - if (arguments->filename) - { - /* Too many arguments. */ - argp_usage(state); - exit(EX_USAGE); /* Invalid argument */ - } - arguments->filename = arg; - break; - case ARGP_KEY_END: - if (!arguments->filename) - { - /* Argument required */ - argp_usage(state); - exit(EX_USAGE); /* Invalid argument */ - } - break; - default: - return ARGP_ERR_UNKNOWN; - } - return 0; -} - -/** Our argp parser. */ -static struct argp argp = { options, parse_opt, args_doc, doc }; - -int main(int argc, char **argv) -{ - /* Set options default values and parse program command line. */ - struct arguments arguments; - arguments.output = BACKTRACE; - arguments.debug = false; - arguments.verbose = false; - arguments.filename = 0; - argp_parse(&argp, argc, argv, 0, 0, &arguments); - - if (arguments.debug) - btp_debug_parser = true; - - /* Load the input file to a string. */ - char *text = btp_file_to_string(arguments.filename); - if (!text) - { - fprintf(stderr, "Failed to read the input file.\n"); - exit(1); - } - - /* Parse the input string. */ - char *ptr = text; - struct btp_location location; - btp_location_init(&location); - struct btp_backtrace *backtrace = btp_backtrace_parse(&ptr, &location); - if (!backtrace) - { - fprintf(stderr, - "Failed to parse the backtrace.\n Line %d, column %d: %s\n", - location.line, - location.column, - location.message); - exit(1); - } - free(text); - - switch (arguments.output) - { - case BACKTRACE: - { - char *text_parsed = btp_backtrace_to_text(backtrace, false); - puts(text_parsed); - free(text_parsed); - break; - } - case RATE: - { - float q = btp_backtrace_quality_complex(backtrace); - printf("%.2f", q); - break; - } - case CRASH_FUNCTION: - { - struct btp_frame *frame = btp_backtrace_get_crash_frame(backtrace); - if (!frame) - { - fprintf(stderr, "Failed to find the crash function."); - exit(1); - } - if (frame->function_name) - puts(frame->function_name); - else - { - assert(frame->signal_handler_called); - puts("signal handler"); - } - btp_frame_free(frame); - break; - } - case DUPLICATION_HASH: - { - char *hash = btp_backtrace_get_duplication_hash(backtrace); - puts(hash); - free(hash); - break; - } - default: - fprintf(stderr, "Unexpected operation."); - exit(1); - } - - btp_backtrace_free(backtrace); - return 0; -} diff --git a/btparser/btparser.pc.in b/btparser/btparser.pc.in deleted file mode 100644 index de3de378..00000000 --- a/btparser/btparser.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: btparser -Description: Library to parse and analyze backtraces produced by the GNU Project Debugger -Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lbtparser -Cflags: -I${includedir}
\ No newline at end of file diff --git a/btparser/btparser.spec.in b/btparser/btparser.spec.in deleted file mode 100644 index 79e176a1..00000000 --- a/btparser/btparser.spec.in +++ /dev/null @@ -1,68 +0,0 @@ -Name: btparser -Version: @PACKAGE_VERSION@ -Release: 1%{?dist} -Summary: Backtrace parser and analyzer for backtraces produced by GDB -Group: Development/Libraries -License: GPLv2+ -URL: none -Source0: btparser-%{version}.tar.xz - -%description -btparser is a backtrace parser and analyzer, which works with -backtraces produced by The GNU Project Debugger. It can parse a text -file with a backtrace to a tree of C structures, allowing to analyze -the threads and frames of the backtrace and work with them. - -btparser also contains some backtrace manipulation and extraction -routines: -- it can find a frame in the crash-time backtrace where the program - most likely crashed (a chance is that the function described in that - frame is buggy) -- it can produce a duplication hash of the backtrace, which helps to - discover that two crash-time backtraces are duplicates, triggered by - the same flaw of the code -- it can "rate" the backtrace quality, which depends on the number of - frames with and without the function name known (missing function - name is caused by missing debugging symbols) - -%package devel -Summary: Development libraries for %{name} -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} - -%description devel -Development libraries and headers for %{name}. - -%prep -%setup -q - -%build -%configure --disable-static -make %{?_smp_mflags} - -%install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT - -# Remove all libtool archives (*.la) from modules directory. -find $RPM_BUILD_ROOT -regex ".*\.la$" | xargs rm -f -- - -%check -make check - -%files -%defattr(-,root,root,-) -%doc README NEWS COPYING TODO ChangeLog -%{_bindir}/%{name} -%{_mandir}/man1/%{name}.1.gz -%{_libdir}/lib*.so.* - -%files devel -%defattr(-,root,root,-) -%{_includedir}/* -%{_libdir}/lib*.so -%{_libdir}/pkgconfig/* - -%changelog -* Mon Aug 30 2010 Karel Klic <kklic@redhat.com> @PACKAGE_VERSION@-1 -- Initial packing diff --git a/btparser/configure.ac b/btparser/configure.ac deleted file mode 100644 index bb08c16b..00000000 --- a/btparser/configure.ac +++ /dev/null @@ -1,24 +0,0 @@ -AC_INIT([btparser], [0.7], [kklic@redhat.com]) - -AM_INIT_AUTOMAKE([-Wall -Werror foreign]) -AM_MAINTAINER_MODE - -AC_DISABLE_STATIC -AC_PROG_LIBTOOL -AC_PROG_CC - -# Initialize the test suite. -AC_CONFIG_TESTDIR(tests) -AC_CONFIG_FILES([tests/Makefile tests/atlocal]) -AM_MISSING_PROG([AUTOM4TE], [autom4te]) -# Needed by tests/atlocal.in. -AC_SUBST([O0CFLAGS], [`echo $CFLAGS | sed 's/-O[[0-9]] *//'`]) - -AC_CONFIG_FILES([ - btparser.spec - btparser.pc - Makefile - lib/Makefile -]) - -AC_OUTPUT diff --git a/btparser/tests/package.m4 b/btparser/tests/package.m4 deleted file mode 100644 index 9f6a83d8..00000000 --- a/btparser/tests/package.m4 +++ /dev/null @@ -1,13 +0,0 @@ -# Signature of the current package. -m4_define([AT_PACKAGE_NAME], - [btparser]) -m4_define([AT_PACKAGE_TARNAME], - [btparser]) -m4_define([AT_PACKAGE_VERSION], - [0.7]) -m4_define([AT_PACKAGE_STRING], - [btparser 0.7]) -m4_define([AT_PACKAGE_BUGREPORT], - [kklic@redhat.com]) -m4_define([AT_PACKAGE_URL], - [@PACKAGE_URL@]) diff --git a/btparser/tests/testsuite.at b/btparser/tests/testsuite.at deleted file mode 100644 index 96fbe9da..00000000 --- a/btparser/tests/testsuite.at +++ /dev/null @@ -1,8 +0,0 @@ -# Test suite for btparser. -# See http://www.gnu.org/software/hello/manual/autoconf/Writing-Testsuites.html - -m4_include([utils.at]) -m4_include([strbuf.at]) -m4_include([frame.at]) -m4_include([thread.at]) -m4_include([backtrace.at]) diff --git a/configure.ac b/configure.ac index 64995df1..283f8fb3 100644 --- a/configure.ac +++ b/configure.ac @@ -104,6 +104,13 @@ AC_SUBST(DEBUG_DUMPS_DIR) AC_SUBST(DEBUG_INFO_DIR) AC_SUBST(DL_LIBS, -ldl) +# Initialize the test suite. +AC_CONFIG_TESTDIR(tests) +AC_CONFIG_FILES([tests/Makefile tests/atlocal]) +AM_MISSING_PROG([AUTOM4TE], [autom4te]) +# Needed by tests/atlocal.in. +AC_SUBST([O0CFLAGS], [`echo $CFLAGS | sed 's/-O[[0-9]] *//'`]) + AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ @@ -113,6 +120,7 @@ AC_CONFIG_FILES([ lib/utils/Makefile lib/plugins/Makefile src/Makefile + src/btparser/Makefile src/daemon/Makefile src/hooks/Makefile src/applet/Makefile @@ -123,5 +131,4 @@ AC_CONFIG_FILES([ icons/Makefile ]) -AC_CONFIG_SUBDIRS([btparser]) AC_OUTPUT diff --git a/src/Makefile.am b/src/Makefile.am index f4f621ca..00227a47 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1 +1 @@ -SUBDIRS = hooks daemon applet gui cli +SUBDIRS = hooks btparser daemon applet gui cli diff --git a/btparser/lib/Makefile.am b/src/btparser/Makefile.am index 38d3dd26..ceb03f3d 100644 --- a/btparser/lib/Makefile.am +++ b/src/btparser/Makefile.am @@ -1,12 +1,3 @@ -pkginclude_HEADERS = \ - backtrace.h \ - frame.h \ - location.h - normalize.h \ - strbuf.h \ - thread.h \ - utils.h - lib_LTLIBRARIES = libbtparser.la libbtparser_la_SOURCES = \ backtrace.h backtrace.c \ diff --git a/btparser/lib/backtrace.c b/src/btparser/backtrace.c index 576c1776..576c1776 100644 --- a/btparser/lib/backtrace.c +++ b/src/btparser/backtrace.c diff --git a/btparser/lib/backtrace.h b/src/btparser/backtrace.h index d5de3ff3..d5de3ff3 100644 --- a/btparser/lib/backtrace.h +++ b/src/btparser/backtrace.h diff --git a/btparser/lib/frame.c b/src/btparser/frame.c index 83680910..83680910 100644 --- a/btparser/lib/frame.c +++ b/src/btparser/frame.c diff --git a/btparser/lib/frame.h b/src/btparser/frame.h index 3cc19c3c..3cc19c3c 100644 --- a/btparser/lib/frame.h +++ b/src/btparser/frame.h diff --git a/btparser/lib/location.c b/src/btparser/location.c index ade706f2..ade706f2 100644 --- a/btparser/lib/location.c +++ b/src/btparser/location.c diff --git a/btparser/lib/location.h b/src/btparser/location.h index 0d620205..0d620205 100644 --- a/btparser/lib/location.h +++ b/src/btparser/location.h diff --git a/btparser/lib/normalize.c b/src/btparser/normalize.c index 4bbee99c..4bbee99c 100644 --- a/btparser/lib/normalize.c +++ b/src/btparser/normalize.c diff --git a/btparser/lib/normalize.h b/src/btparser/normalize.h index 35fd2836..35fd2836 100644 --- a/btparser/lib/normalize.h +++ b/src/btparser/normalize.h diff --git a/btparser/lib/normalize_dbus.c b/src/btparser/normalize_dbus.c index d3d6a13a..d3d6a13a 100644 --- a/btparser/lib/normalize_dbus.c +++ b/src/btparser/normalize_dbus.c diff --git a/btparser/lib/normalize_gdk.c b/src/btparser/normalize_gdk.c index e9c4ef6a..e9c4ef6a 100644 --- a/btparser/lib/normalize_gdk.c +++ b/src/btparser/normalize_gdk.c diff --git a/btparser/lib/normalize_glib.c b/src/btparser/normalize_glib.c index b5c12b60..b5c12b60 100644 --- a/btparser/lib/normalize_glib.c +++ b/src/btparser/normalize_glib.c diff --git a/btparser/lib/normalize_glibc.c b/src/btparser/normalize_glibc.c index ea40ba9d..ea40ba9d 100644 --- a/btparser/lib/normalize_glibc.c +++ b/src/btparser/normalize_glibc.c diff --git a/btparser/lib/normalize_libstdcpp.c b/src/btparser/normalize_libstdcpp.c index 1f833ded..1f833ded 100644 --- a/btparser/lib/normalize_libstdcpp.c +++ b/src/btparser/normalize_libstdcpp.c diff --git a/btparser/lib/normalize_linux.c b/src/btparser/normalize_linux.c index 8df9f9c2..8df9f9c2 100644 --- a/btparser/lib/normalize_linux.c +++ b/src/btparser/normalize_linux.c diff --git a/btparser/lib/normalize_xorg.c b/src/btparser/normalize_xorg.c index 11e8d624..11e8d624 100644 --- a/btparser/lib/normalize_xorg.c +++ b/src/btparser/normalize_xorg.c diff --git a/btparser/lib/strbuf.c b/src/btparser/strbuf.c index 43d834fd..43d834fd 100644 --- a/btparser/lib/strbuf.c +++ b/src/btparser/strbuf.c diff --git a/btparser/lib/strbuf.h b/src/btparser/strbuf.h index d8503e02..d8503e02 100644 --- a/btparser/lib/strbuf.h +++ b/src/btparser/strbuf.h diff --git a/btparser/lib/thread.c b/src/btparser/thread.c index 1a7f715e..1a7f715e 100644 --- a/btparser/lib/thread.c +++ b/src/btparser/thread.c diff --git a/btparser/lib/thread.h b/src/btparser/thread.h index b9f0973d..b9f0973d 100644 --- a/btparser/lib/thread.h +++ b/src/btparser/thread.h diff --git a/btparser/lib/utils.c b/src/btparser/utils.c index 1de329a7..1de329a7 100644 --- a/btparser/lib/utils.c +++ b/src/btparser/utils.c diff --git a/btparser/lib/utils.h b/src/btparser/utils.h index 680e67e0..680e67e0 100644 --- a/btparser/lib/utils.h +++ b/src/btparser/utils.h diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am index 980268cb..3d307128 100644 --- a/src/daemon/Makefile.am +++ b/src/daemon/Makefile.am @@ -94,7 +94,7 @@ abrt_action_generate_backtrace_CPPFLAGS = \ -Wall -Werror abrt_action_generate_backtrace_LDADD = \ ../../lib/utils/libABRTUtils.la \ - ../../btparser/lib/libbtparser.la + ../btparser/libbtparser.la abrt_action_save_package_data_SOURCES = \ rpm.h rpm.c \ diff --git a/src/daemon/abrt-action-generate-backtrace.c b/src/daemon/abrt-action-generate-backtrace.c index ff65fdc0..ac432a8e 100644 --- a/src/daemon/abrt-action-generate-backtrace.c +++ b/src/daemon/abrt-action-generate-backtrace.c @@ -17,9 +17,9 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "abrtlib.h" -#include "btparser/lib/backtrace.h" -#include "btparser/lib/frame.h" -#include "btparser/lib/location.h" +#include "../btparser/backtrace.h" +#include "../btparser/frame.h" +#include "../btparser/location.h" #include "parse_options.h" diff --git a/btparser/tests/Makefile.am b/tests/Makefile.am index bc8be638..30569d48 100644 --- a/btparser/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,4 @@ -EXTRA_DIST = backtraces +SUBDIRS = btparser ## ------------ ## ## package.m4. ## @@ -20,7 +20,7 @@ package.m4: Makefile.in echo 'm4_define([AT_PACKAGE_URL],' && \ echo ' [@PACKAGE_URL@])'; \ } >'package.m4' -EXTRA_DIST += package.m4 +EXTRA_DIST = package.m4 ## ------------ ## ## Test suite. ## @@ -28,12 +28,7 @@ EXTRA_DIST += package.m4 TESTSUITE_AT = \ local.at \ - testsuite.at \ - utils.at \ - strbuf.at \ - frame.at \ - thread.at \ - backtrace.at + testsuite.at EXTRA_DIST += $(TESTSUITE_AT) TESTSUITE = $(srcdir)/testsuite diff --git a/btparser/tests/atlocal.in b/tests/atlocal.in index 856e5fec..068214b2 100644 --- a/btparser/tests/atlocal.in +++ b/tests/atlocal.in @@ -9,7 +9,7 @@ LIBTOOL="$abs_top_builddir/libtool" CFLAGS="@O0CFLAGS@ -I$abs_top_builddir -D_GNU_SOURCE" # Are special link options needed? -LDFLAGS="@LDFLAGS@ $abs_top_builddir/lib/libbtparser.la" +LDFLAGS="@LDFLAGS@ $abs_top_builddir/src/libbtparser.la" # Are special libraries needed? LIBS="@LIBS@" diff --git a/tests/btparser/Makefile.am b/tests/btparser/Makefile.am new file mode 100644 index 00000000..57805452 --- /dev/null +++ b/tests/btparser/Makefile.am @@ -0,0 +1,15 @@ +EXTRA_DIST = backtraces + +## ------------ ## +## Test suite. ## +## ------------ ## + +TESTSUITE_AT = \ + utils.at \ + strbuf.at \ + frame.at \ + thread.at \ + backtrace.at + +EXTRA_DIST += $(TESTSUITE_AT) +MAINTAINERCLEANFILES = Makefile.in diff --git a/btparser/tests/backtrace.at b/tests/btparser/backtrace.at index 057d2e63..057d2e63 100644 --- a/btparser/tests/backtrace.at +++ b/tests/btparser/backtrace.at diff --git a/btparser/tests/backtraces/621492.bt b/tests/btparser/backtraces/621492.bt index f1e5404e..f1e5404e 100644 --- a/btparser/tests/backtraces/621492.bt +++ b/tests/btparser/backtraces/621492.bt diff --git a/btparser/tests/frame.at b/tests/btparser/frame.at index 28c34ac5..28c34ac5 100644 --- a/btparser/tests/frame.at +++ b/tests/btparser/frame.at diff --git a/btparser/tests/strbuf.at b/tests/btparser/strbuf.at index 18535c15..18535c15 100644 --- a/btparser/tests/strbuf.at +++ b/tests/btparser/strbuf.at diff --git a/btparser/tests/thread.at b/tests/btparser/thread.at index 143a8e1f..143a8e1f 100644 --- a/btparser/tests/thread.at +++ b/tests/btparser/thread.at diff --git a/btparser/tests/utils.at b/tests/btparser/utils.at index c12d05fa..c12d05fa 100644 --- a/btparser/tests/utils.at +++ b/tests/btparser/utils.at diff --git a/btparser/tests/local.at b/tests/local.at index 758906d4..758906d4 100644 --- a/btparser/tests/local.at +++ b/tests/local.at diff --git a/tests/testsuite.at b/tests/testsuite.at new file mode 100644 index 00000000..24c2a2b6 --- /dev/null +++ b/tests/testsuite.at @@ -0,0 +1,8 @@ +# Test suite for abrt. +# See http://www.gnu.org/software/hello/manual/autoconf/Writing-Testsuites.html + +m4_include([btparser/utils.at]) +m4_include([btparser/strbuf.at]) +m4_include([btparser/frame.at]) +m4_include([btparser/thread.at]) +m4_include([btparser/backtrace.at]) |