summaryrefslogtreecommitdiffstats
path: root/btparser/README
diff options
context:
space:
mode:
Diffstat (limited to 'btparser/README')
-rw-r--r--btparser/README38
1 files changed, 38 insertions, 0 deletions
diff --git a/btparser/README b/btparser/README
new file mode 100644
index 00000000..b2ed1bb3
--- /dev/null
+++ b/btparser/README
@@ -0,0 +1,38 @@
+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