Commit Graph

205 Commits

Author SHA1 Message Date
Antony Polukhin
77492bc517 Added constructor to frame that accepts function addresses 2017-05-06 10:17:38 +03:00
Antony Polukhin
576a5355e3 Include <type_traits> if possible and use a more portable noexcept checking logic for move assignment 2017-05-04 09:18:57 +03:00
Antony Polukhin
25efff8c87 Added an error message on attempt to use the thread local chached windbg on a compilers without the thread_local support 2017-05-03 23:55:33 +03:00
Antony Polukhin
29aaf100a8 Revert "Enable usage of MSVC specific thread local storage attributes"
This reverts commit ca4464d23c.
2017-05-03 23:50:22 +03:00
Antony Polukhin
ca4464d23c Enable usage of MSVC specific thread local storage attributes 2017-05-03 23:47:12 +03:00
Antony Polukhin
c8d526493d Workarounds for this usage in constexpr functions in GCC 2017-05-01 22:30:09 +03:00
Antony Polukhin
cff7191e46 Fix MinGW warnings about extra ';' 2017-05-01 00:56:05 +03:00
Antony Polukhin
63b4f96ba4 Fix compilation on pre-C++11 standard libraries 2017-04-29 21:43:03 +03:00
Antony Polukhin
39247fbb32 Fixed MSVC related compilation issues 2017-04-29 19:23:39 +03:00
Antony Polukhin
a014c78b74 Fix MSVC 'conditional expression is constant' warning 2017-04-29 01:10:02 +03:00
Antony Polukhin
3d25e45a0d Fix MSVC warnings and add some doxygen workarounds for prettier reference section of the docs 2017-04-29 01:00:00 +03:00
Antony Polukhin
55063fd438 Add id to .qbk (refs #17) 2017-04-27 22:35:14 +03:00
Antony Polukhin
68c4f8be6a Added void_ptr_cast and tests for it 2017-04-21 21:57:31 +03:00
Antony Polukhin
141bc0a1d6 Attempt to fix link errors on MSVC 2017-04-20 21:26:09 +03:00
Antony Polukhin
984b702a11 Fix MSVC compilation 2017-04-20 20:49:58 +03:00
Antony Polukhin
61d11f8d48 Separated the stack collecting from decoding headers, dropped windows.h dependency for capturing stack, added tests on minimal files inclusion for stack capturing headers 2017-04-20 20:09:49 +03:00
Antony Polukhin
2e29ee7648 Separation of stack collecting and stack decoding headers, part 3 2017-04-20 20:07:41 +03:00
Antony Polukhin
f2f66b0d2a Separation of stack collecting and stack decoding headers, part 2 2017-04-20 20:07:05 +03:00
Antony Polukhin
fe5a0d9871 Started the separation of stack collecting and stack decoding headers 2017-04-20 20:06:09 +03:00
Antony Polukhin
960f9d0f38 Use native_frame_ptr_t instead of void* and const void* 2017-04-20 20:04:27 +03:00
Antony Polukhin
21c2484f75 Added some constexprs to boost::stacktrace::frame 2017-04-20 20:02:55 +03:00
Antony Polukhin
e0fb46b62c Drop dependency to Boost.Container 2017-04-20 20:02:32 +03:00
Antony Polukhin
fb29d75b3a Harden the security by not evaluating the PATH variable in addr2line implementation 2017-04-19 22:28:45 +03:00
Antony Polukhin
96deb9688a Fixed incorrect usage of S_IFREG reported in #15 2017-04-19 22:27:38 +03:00
Antony Polukhin
885f45e64f More aggressive thread safety testing, fix for the libbacktrace usage in shared library, TravisCI tweaks 2017-04-15 21:28:11 +03:00
Antony Polukhin
9fc256bee4 Fixes for cached msvc compilation 2017-04-15 14:56:21 +03:00
Antony Polukhin
ce661c9c7b Typo fix in chaced msvc 2017-04-15 13:20:00 +03:00
Antony Polukhin
b784ccdebd One more MSVC fix related to module only name apearing without function name 2017-04-14 23:20:33 +03:00
Antony Polukhin
287090e284 Fix function name extraction using MSVC and mark MSVC tests without debug info as tests that do not producs stacktraces 2017-04-14 22:59:13 +03:00
Antony Polukhin
fea1024491 Typo fix in MSVC related code 2017-04-14 22:26:36 +03:00
Antony Polukhin
3b0e6a57a3 MSVC refactoring. MinGW fixes from @ustrobot (issue #14) 2017-04-14 21:49:19 +03:00
Antony Polukhin
22261768ec Fix segfaults with libbacktrace while getting stack trace without debug info. Speedup and reduce memory usage while using libbacktrace 2017-04-14 21:46:24 +03:00
Antony Polukhin
d1380eba28 Apply Cygwin fixes from Peter Dimov 2017-03-18 16:50:38 +03:00
Antony Polukhin
fb9de2bb6b Drop windows.h inclusion in safe_dump_win.ipp 2017-03-18 13:13:43 +03:00
Antony Polukhin
46b0542350 Replaced the hand written try_demangle function with core::demangle 2017-03-18 12:38:42 +03:00
Antony Polukhin
6b3d993df1 Remove the unportable +2 skips because MSVC could ignore BOOST_NOINCLUDE depending on linktime optimization flags 2017-03-18 12:27:11 +03:00
Antony Polukhin
9c1c343dad Fixed the accidental trigraphs/digraphs in frame_msvc.ipp 2017-03-18 12:22:52 +03:00
Antony Polukhin
b6fad0f575 Make sure that frames with 0x0 addresses are not stored 2017-03-16 23:10:09 +03:00
Antony Polukhin
5552c97150 MinGW fixes. Docs updated to satisfy the prereview requests 2017-03-16 22:46:21 +03:00
Antony Polukhin
3f48887f2e Another attempt to remove MSVC specific extensions (4) 2017-03-04 05:13:40 +03:00
Antony Polukhin
affbfef4b6 Another attempt to remove MSVC specific extensions (2) 2017-03-04 03:56:15 +03:00
Antony Polukhin
e420e0a071 Another attempt to remove MSVC specific extensions 2017-03-04 03:21:31 +03:00
Antony Polukhin
34ff2dfc04 Experimenting with MinGW and stacktracing on Windows 2017-03-03 08:36:51 +03:00
Antony Polukhin
7f45997fb2 Restore __uuidof crappy extension usage for crappy COM technology 2017-03-03 05:40:29 +03:00
Antony Polukhin
abd8afb6ec Tuning frame_msvc in attempt to use less MSVC extensions 2017-03-03 04:52:08 +03:00
Antony Polukhin
7b6a8e84f7 MinGW fixes (2). Do not include unused headers 2017-02-25 23:09:36 +03:00
Antony Polukhin
94f73fe616 MinGW fixes 2017-02-24 09:07:11 +03:00
Antony Polukhin
ca6fc8b312 Typo fix for MinGW 2017-02-24 08:31:17 +03:00
Antony Polukhin
d92c405ec1 Another attempt to fix MinGW builds 2017-02-24 08:19:50 +03:00
Antony Polukhin
6a146fe7e3 Fix MinGW compilation 2017-02-20 23:13:47 +03:00
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