Commit Graph

205 Commits

Author SHA1 Message Date
Antony Polukhin
00a13698e0 Attempt to fix MSVC tests 2017-02-07 23:26:14 +03:00
Antony Polukhin
116dd872b8 Allow users to easily skip frames (API change), add more tests and update docs 2017-02-07 22:58:22 +03:00
Antony Polukhin
eb9fcf8050 Removed internals from stacktraces, added more tests on safe dumping 2017-02-07 22:55:19 +03:00
Antony Polukhin
a246a5c148 Minor addition to the docs 2017-02-06 23:33:03 +03:00
Antony Polukhin
441d38af76 Drop version info in dump 2017-02-06 22:55:27 +03:00
Antony Polukhin
9c08e254f1 Fix MinGW compilation 2017-02-04 22:52:28 +03:00
Antony Polukhin
b842cb2284 Quickfix 2017-02-04 22:34:51 +03:00
Antony Polukhin
8050e4ea8e Better from_dump implementation (2) 2017-02-04 22:05:41 +03:00
Antony Polukhin
ab6e88f1d0 Better from_dump implementation 2017-02-04 21:40:35 +03:00
Antony Polukhin
270786eb1e Added dump format version 2017-02-04 21:22:28 +03:00
Antony Polukhin
ca0a912125 Fix issue with reading from stream 2017-02-04 02:59:31 +03:00
Antony Polukhin
a462364409 Use more functions from boost::detail::winapi rather than from global namespace 2017-01-28 12:51:48 +03:00
Antony Polukhin
224750cbef Added more examples on safe_dump_to (shared memory example) and changed interface of safe dumping into the memory 2017-01-27 21:56:27 +03:00
Antony Polukhin
ea6e7fabe9 Improve docs and move safe dumping into a separate header file 2017-01-26 22:22:40 +03:00
Antony Polukhin
d26dc67be6 Implemented safe dumping and loading 2017-01-26 22:21:24 +03:00
Antony Polukhin
e4c3542c96 Even more fixes 2017-01-19 23:02:08 +03:00
Antony Polukhin
fc0063de37 More fixes for the async-safe stack dumping 2017-01-19 22:41:45 +03:00
Antony Polukhin
bc5b4fad18 MSVC fixes 2017-01-19 22:15:22 +03:00
Antony Polukhin
13fe06063b Added initial version of safe dumping 2017-01-19 21:59:37 +03:00
Antony Polukhin
c221f0c2dd Multiple minor fixes, improved docs, changed the example to use Boost.Exception 2017-01-13 22:36:25 +03:00
Antony Polukhin
1c5274f9fa Big refactoring: no more backends, only macro to enable additional functionality 2017-01-13 22:33:37 +03:00
Antony Polukhin
bd616a7249 Make a basic usecase the default one, add tests and create a target library for that 2017-01-13 22:31:03 +03:00
Antony Polukhin
3ec1c49c3b Separate code for addr2line, libbacktrace and basic 2017-01-13 22:28:53 +03:00
Antony Polukhin
c5843350f0 Move code around 2017-01-08 21:33:23 +03:00
Antony Polukhin
7a40dc90ae Qualify all the calls, do not mix std:: and :: function usage, detail::pc_data refactored to avoid copying 2017-01-08 20:50:53 +03:00
Antony Polukhin
85c31f691d Macro for enabling/disabling addr2line usage 2017-01-08 12:05:45 +03:00
Antony Polukhin
f37eea04fa Optimize ostream operator with libbackend 2017-01-08 00:14:05 +03:00
Antony Polukhin
b7bf4b5932 Use libbacktrace, added more tests 2017-01-08 00:00:17 +03:00
Antony Polukhin
c45c8ff0e4 Optimized printing stacktraces on Win 2017-01-03 14:11:30 +03:00
Antony Polukhin
053b9f5606 Typo fix for Win 2017-01-03 13:41:26 +03:00
Antony Polukhin
6de0fe088b Micro optimizations and bugfixes for Win 2017-01-03 13:27:15 +03:00
Antony Polukhin
d6c1350952 Improve backtrace formatting and output more information into the backtrace when source file info is unawailable 2017-01-03 12:58:28 +03:00
Antony Polukhin
36061d4ef8 Move code around, prepare for optimizing the stack ostreaming operators 2017-01-03 11:59:55 +03:00
Antony Polukhin
7149a04002 Optimize frame printing 2017-01-03 00:06:20 +03:00
Antony Polukhin
5a9ba3342d Set lines count to zero on second failed attempt to get line number 2017-01-02 22:47:35 +03:00
Antony Polukhin
8f06ce9b3d Preparations for optimized streaming of frames and stacktraces 2017-01-02 21:15:25 +03:00
Antony Polukhin
60ac93f79f Fix [move]assignemnt operators 2016-12-26 22:20:08 +03:00
Antony Polukhin
16ef077fa4 Fix unsigned overflow in basic_stacktrace constructor, improve some tests, make sure that skipping 2 frames does not show internals to the user 2016-12-26 22:18:27 +03:00
Antony Polukhin
2893578446 detail::backend class does not own data any more 2016-12-26 22:15:53 +03:00
Antony Polukhin
99e4b53742 Started reimplementing stacktrace with Allocator 2016-12-26 22:12:29 +03:00
Antony Polukhin
ec7abcdf68 Fixed MacOS examples 2016-12-26 22:11:23 +03:00
Antony Polukhin
9d1a2d652b Call CoUninitialize after all the COM methods were used 2016-12-17 11:41:55 +03:00
Antony Polukhin
b282f55342 Fix issues found by Udo Steinbach 2016-12-17 11:25:08 +03:00
Antony Polukhin
d747ab0fac Improve docs by adding more examples and Acknowledgements section, improve output for unwind backend 2016-12-10 22:10:08 +03:00
Antony Polukhin
13c3807674 More examples implemented and moved code around 2016-12-10 14:29:27 +03:00
Antony Polukhin
856bc476b7 Fix the test compilation (2) 2016-12-08 10:50:03 +03:00
Antony Polukhin
903a1dc081 Allow to setup max trace length, added more tests, added meta folder and updated the Jamfali for building docs 2016-12-08 10:02:28 +03:00
Antony Polukhin
6e01617dad Dropped dependency to the aligned_storage, fixed issue in linux backend with incorrect detection of end pointer and fix getting coverage in travis script 2016-12-03 21:24:55 +03:00
Antony Polukhin
4ce841ef65 Code deduplicated and simplified, added empty() functions and some explicit bool operators, speed-up and improved the output of the ostream operators, improved tests coverage 2016-12-01 09:55:17 +03:00
Antony Polukhin
fd513391ca Async signal safe backend implmented and notes about async-safety were added to the docs. 2016-11-30 10:47:58 +03:00
Antony Polukhin
d4f8f64929 Fixed windows build and issue with returning incorrect frame address (now 0 retuned instead of running out of bounds) 2016-11-25 22:12:57 +03:00
Antony Polukhin
aff892356f Changed classname from frame_view to frame 2016-11-25 21:59:30 +03:00
Antony Polukhin
6f8cbefbf2 Cleanup to_hex_array.hpp 2016-11-25 21:57:26 +03:00
Antony Polukhin
c571f9a7d8 frame_view now has a public constructor from void pointer 2016-11-25 21:56:13 +03:00
Antony Polukhin
b35614a7a5 Removed libunwind backend and forced all the backends to return source info from void pointer 2016-11-25 21:50:43 +03:00
Antony Polukhin
58f49c9208 Get rid of reinterpret_cast 2016-11-24 21:41:00 +03:00
Antony Polukhin
589cb811e6 Get rid of multiple reinterpret_casts 2016-11-24 21:40:31 +03:00
Antony Polukhin
55e7b1981b Hand-write popen/pclose and close the strerr in the child process 2016-11-24 21:37:47 +03:00
Antony Polukhin
48eba3030d Make the linux backend print location in source file, extract function names even if they have no visibility, fix warnings 2016-11-24 21:36:32 +03:00
Antony Polukhin
b564087208 Make Linux version of detail::backtrace_holder look exactly as the Windows version 2016-11-24 09:34:49 +03:00
Antony Polukhin
87f0c76816 Attempt to fix Win test failures 2016-11-24 09:24:51 +03:00
Antony Polukhin
fad2a7dc81 Added some thoughts on getting source file name and code lines for functions 2016-11-24 09:15:24 +03:00
Antony Polukhin
aaef5f134f Fix minor issues that are seen by tests and appeared after refactoring 2016-11-23 22:55:39 +03:00
Antony Polukhin
32be7aefe0 Clenups and split stacktrace.hpp into files 2016-11-23 00:02:16 +03:00
Antony Polukhin
136680bd71 Fixed hash copying in assignemt operator 2016-11-22 23:47:38 +03:00
Antony Polukhin
91b6a8f115 Fix Win warnings 2016-11-22 22:46:55 +03:00
Antony Polukhin
d7c20e50b2 Fixing Windows linkage 2016-11-22 22:28:26 +03:00
Antony Polukhin
16214550fe Big refactoring to allow in the future to setup stacktrace depth 2016-11-22 22:02:03 +03:00
Antony Polukhin
b9cbcb48be Fix Windows compilation and improve examples 2016-11-17 22:39:06 +03:00
Antony Polukhin
468f7fc381 Implemented get_source_line() and get_source_file() for Windows backend. Fixed debug engine detection during build 2016-11-17 22:17:18 +03:00
Antony Polukhin
db56639833 Send source file and source line requests to the backend s 2016-11-17 22:12:39 +03:00
Antony Polukhin
4320fc2a14 Remove some of the reinterpret_casts 2016-11-16 22:07:02 +03:00
Antony Polukhin
b826c957a3 Fix win build (3) 2016-11-15 23:28:48 +03:00
Antony Polukhin
0c905ff5a2 Fix win build (2) 2016-11-15 23:17:28 +03:00
Antony Polukhin
8e98270361 Fix win build 2016-11-15 22:02:05 +03:00
Antony Polukhin
115c5db0a3 Follow Niall comments and reimplement win debugging in thread safe manner 2016-11-15 21:30:12 +03:00
Antony Polukhin
4c30f8e9cb frame_view and iterator are not nested classes any more, reordered some functions to make reference documentation look better 2016-10-26 22:25:16 +03:00
Antony Polukhin
8768a721b1 Doxyden output improved, improved docs and added more examples 2016-10-26 22:23:09 +03:00
Antony Polukhin
8fa8c93fdb Added operators for frame_view class, libunwind backend now stores addresses 2016-10-26 22:21:46 +03:00
Antony Polukhin
6c1fd6cba1 Improved docs, added more tests, made a frame_view class from class frame 2016-10-26 22:20:10 +03:00
Antony Polukhin
e16e1a4a60 Do not use operator[] to avoid dangling references 2016-10-25 21:53:48 +03:00
Antony Polukhin
b8dcd2b553 Working version of iterator and frame 2016-10-25 21:52:29 +03:00
Antony Polukhin
bd59ec8bef Strted implmenting the iterators and frame class 2016-10-25 21:51:27 +03:00
Antony Polukhin
2f96299be2 Fix Windows linkage 2016-10-12 22:22:21 +03:00
Antony Polukhin
ab6cb7483e Added support for hashing 2016-10-12 20:26:09 +03:00
Antony Polukhin
40d1fcba36 Improved reference documentation (now explicit operator bool is documented) 2016-10-12 20:25:05 +03:00
Antony Polukhin
2440061676 Output more information in stacktraces (instruction offsets and function addressees) when apropriate 2016-10-12 20:23:54 +03:00
Antony Polukhin
b75dfd361c Added comparison operators and tests for them 2016-10-12 20:22:24 +03:00
Antony Polukhin
46860b50a9 Docs updated, now all the macro are documented 2016-10-11 23:23:45 +03:00
Antony Polukhin
e1c1a4910b Minor improvements and refactoring 2016-10-11 23:22:38 +03:00
Antony Polukhin
73206b9c64 Atempt to avoid inclusion of <windows.h> in header files 2016-09-27 23:35:52 +03:00
Antony Polukhin
decdb41e66 Do not rely on BOOST_FORCEINLINE and just call all the backtrace retrival functions from stacktrace constructor 2016-09-26 19:45:14 +03:00
Antony Polukhin
45d2181fdd Fix for retrival symbols on Windows for not first time 2016-09-26 19:42:30 +03:00
Antony Polukhin
0963de1ff7 More examples, added content to 'getting started' section in docs, improved some tests 2016-09-14 22:01:49 +03:00
Antony Polukhin
bd07777485 More examples and removed inclusion of some unused headers 2016-09-14 22:00:19 +03:00
Antony Polukhin
76cfb88fc0 Fixes for linkage and tests 2016-09-14 21:58:15 +03:00
Antony Polukhin
326d931bb0 Now header-only by default, fixes for tests and builds, better backend auto-detection 2016-09-13 00:13:02 +03:00
Antony Polukhin
b1f41947d6 Fixed shared libraries build, removed unused file 2016-09-08 21:48:33 +03:00
Antony Polukhin
6522b60c72 Added noop backend. Do not skip frames in backends anymore, because it is impossible to guess the inlining heuristics on different compilers. Fixed tests, added more tests, simplified code, improved docs 2016-09-08 21:42:43 +03:00
Antony Polukhin
e798527df8 Fixed libunwind exception safety in assignments and construction, changed tests to use boost's lightweight test infrastructure, code cleanup, include guards added 2016-09-08 21:23:43 +03:00
Antony Polukhin
2d6c03e7dc Fixed libunwind backend, added docs, fixed tests and compilation, changed return type of stacktrace::operator[] 2016-09-08 08:18:18 +03:00
Antony Polukhin
13d8ee423c Fix Win linkage and fix link in README 2016-06-05 13:06:12 +03:00
Antony Polukhin
ba19bb42c8 BOOST_VALIDATE -> BOOST_VERIFY 2016-06-05 00:24:24 +03:00
Antony Polukhin
85d864a92d Fixes for Windows 2016-06-04 21:32:48 +03:00
Antony Polukhin
b8d1ff2730 Initial version of stacktrace library 2016-06-04 15:51:28 +03:00