diff options
author | arcadia-devtools <[email protected]> | 2022-04-26 11:01:21 +0300 |
---|---|---|
committer | arcadia-devtools <[email protected]> | 2022-04-26 11:01:21 +0300 |
commit | c321d56b715aa8ca196cf373c98b02b83251b8bb (patch) | |
tree | 0dedcee57bf1b0d0e26268ad13aa27089dfdc0c6 /contrib/restricted/boost | |
parent | 2aee4cdb6025798e3aae85cc1eabe01140ef0d3b (diff) |
intermediate changes
ref:f69f306f165759314221f8c42c9dc3748f5ab986
Diffstat (limited to 'contrib/restricted/boost')
32 files changed, 296 insertions, 371 deletions
diff --git a/contrib/restricted/boost/boost/stacktrace/detail/addr2line_impls.hpp b/contrib/restricted/boost/boost/stacktrace/detail/addr2line_impls.hpp deleted file mode 100644 index d54fd8247a1..00000000000 --- a/contrib/restricted/boost/boost/stacktrace/detail/addr2line_impls.hpp +++ /dev/null @@ -1,226 +0,0 @@ -// Copyright Antony Polukhin, 2016-2021. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_STACKTRACE_DETAIL_ADDR2LINE_IMPLS_HPP -#define BOOST_STACKTRACE_DETAIL_ADDR2LINE_IMPLS_HPP - -#include <boost/config.hpp> -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -#include <boost/stacktrace/detail/to_hex_array.hpp> -#include <boost/stacktrace/detail/to_dec_array.hpp> -#include <boost/stacktrace/detail/try_dec_convert.hpp> -#include <boost/core/demangle.hpp> -#include <cstdio> - -#include <sys/types.h> -#include <sys/wait.h> -#include <signal.h> - - -namespace boost { namespace stacktrace { namespace detail { - - -#if defined(BOOST_STACKTRACE_ADDR2LINE_LOCATION) && !defined(BOOST_NO_CXX11_CONSTEXPR) - -constexpr bool is_abs_path(const char* path) BOOST_NOEXCEPT { - return *path != '\0' && ( - *path == ':' || *path == '/' || is_abs_path(path + 1) - ); -} - -#endif - -class addr2line_pipe { - ::FILE* p; - ::pid_t pid; - -public: - explicit addr2line_pipe(const char *flag, const char* exec_path, const char* addr) BOOST_NOEXCEPT - : p(0) - , pid(0) - { - int pdes[2]; - #ifdef BOOST_STACKTRACE_ADDR2LINE_LOCATION - char prog_name[] = BOOST_STRINGIZE( BOOST_STACKTRACE_ADDR2LINE_LOCATION ); - #if !defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CXX11_STATIC_ASSERT) - static_assert( - boost::stacktrace::detail::is_abs_path( BOOST_STRINGIZE( BOOST_STACKTRACE_ADDR2LINE_LOCATION ) ), - "BOOST_STACKTRACE_ADDR2LINE_LOCATION must be an absolute path" - ); - #endif - - #else - char prog_name[] = "/usr/bin/addr2line"; - #endif - - char* argp[] = { - prog_name, - const_cast<char*>(flag), - const_cast<char*>(exec_path), - const_cast<char*>(addr), - 0 - }; - - if (::pipe(pdes) < 0) { - return; - } - - pid = ::fork(); - switch (pid) { - case -1: - // Failed... - ::close(pdes[0]); - ::close(pdes[1]); - return; - - case 0: - // We are the child. - ::close(STDERR_FILENO); - ::close(pdes[0]); - if (pdes[1] != STDOUT_FILENO) { - ::dup2(pdes[1], STDOUT_FILENO); - } - - // Do not use `execlp()`, `execvp()`, and `execvpe()` here! - // `exec*p*` functions are vulnerable to PATH variable evaluation attacks. - ::execv(prog_name, argp); - ::_exit(127); - } - - p = ::fdopen(pdes[0], "r"); - ::close(pdes[1]); - } - - operator ::FILE*() const BOOST_NOEXCEPT { - return p; - } - - ~addr2line_pipe() BOOST_NOEXCEPT { - if (p) { - ::fclose(p); - int pstat = 0; - ::kill(pid, SIGKILL); - ::waitpid(pid, &pstat, 0); - } - } -}; - -inline std::string addr2line(const char* flag, const void* addr) { - std::string res; - - boost::stacktrace::detail::location_from_symbol loc(addr); - if (!loc.empty()) { - res = loc.name(); - } else { - res.resize(16); - int rlin_size = ::readlink("/proc/self/exe", &res[0], res.size() - 1); - while (rlin_size == static_cast<int>(res.size() - 1)) { - res.resize(res.size() * 4); - rlin_size = ::readlink("/proc/self/exe", &res[0], res.size() - 1); - } - if (rlin_size == -1) { - res.clear(); - return res; - } - res.resize(rlin_size); - } - - addr2line_pipe p(flag, res.c_str(), to_hex_array(addr).data()); - res.clear(); - - if (!p) { - return res; - } - - char data[32]; - while (!::feof(p)) { - if (::fgets(data, sizeof(data), p)) { - res += data; - } else { - break; - } - } - - // Trimming - while (!res.empty() && (res[res.size() - 1] == '\n' || res[res.size() - 1] == '\r')) { - res.erase(res.size() - 1); - } - - return res; -} - - -struct to_string_using_addr2line { - std::string res; - void prepare_function_name(const void* addr) { - res = boost::stacktrace::frame(addr).name(); - } - - bool prepare_source_location(const void* addr) { - //return addr2line("-Cfipe", addr); // Does not seem to work in all cases - std::string source_line = boost::stacktrace::detail::addr2line("-Cpe", addr); - if (!source_line.empty() && source_line[0] != '?') { - res += " at "; - res += source_line; - return true; - } - - return false; - } -}; - -template <class Base> class to_string_impl_base; -typedef to_string_impl_base<to_string_using_addr2line> to_string_impl; - -inline std::string name_impl(const void* addr) { - std::string res = boost::stacktrace::detail::addr2line("-fe", addr); - res = res.substr(0, res.find_last_of('\n')); - res = boost::core::demangle(res.c_str()); - - if (res == "??") { - res.clear(); - } - - return res; -} - -} // namespace detail - -std::string frame::source_file() const { - std::string res; - res = boost::stacktrace::detail::addr2line("-e", addr_); - res = res.substr(0, res.find_last_of(':')); - if (res == "??") { - res.clear(); - } - - return res; -} - - -std::size_t frame::source_line() const { - std::size_t line_num = 0; - std::string res = boost::stacktrace::detail::addr2line("-e", addr_); - const std::size_t last = res.find_last_of(':'); - if (last == std::string::npos) { - return 0; - } - res = res.substr(last + 1); - - if (!boost::stacktrace::detail::try_dec_convert(res.c_str(), line_num)) { - return 0; - } - - return line_num; -} - - -}} // namespace boost::stacktrace - -#endif // BOOST_STACKTRACE_DETAIL_ADDR2LINE_IMPLS_HPP diff --git a/contrib/restricted/boost/boost/stacktrace/detail/collect_noop.ipp b/contrib/restricted/boost/boost/stacktrace/detail/collect_noop.ipp deleted file mode 100644 index ca251c393f9..00000000000 --- a/contrib/restricted/boost/boost/stacktrace/detail/collect_noop.ipp +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright Antony Polukhin, 2016-2021. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_STACKTRACE_DETAIL_COLLECT_NOOP_IPP -#define BOOST_STACKTRACE_DETAIL_COLLECT_NOOP_IPP - -#include <boost/config.hpp> -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -#include <boost/stacktrace/safe_dump_to.hpp> - -namespace boost { namespace stacktrace { namespace detail { - -std::size_t this_thread_frames::collect(native_frame_ptr_t* /*out_frames*/, std::size_t /*max_frames_count*/, std::size_t /*skip*/) BOOST_NOEXCEPT { - return 0; -} - -}}} // namespace boost::stacktrace::detail - -#endif // BOOST_STACKTRACE_DETAIL_COLLECT_NOOP_IPP diff --git a/contrib/restricted/boost/boost/stacktrace/detail/frame_noop.ipp b/contrib/restricted/boost/boost/stacktrace/detail/frame_noop.ipp deleted file mode 100644 index 7bac4c22447..00000000000 --- a/contrib/restricted/boost/boost/stacktrace/detail/frame_noop.ipp +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright Antony Polukhin, 2016-2021. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_STACKTRACE_DETAIL_FRAME_NOOP_IPP -#define BOOST_STACKTRACE_DETAIL_FRAME_NOOP_IPP - -#include <boost/config.hpp> -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -#include <boost/stacktrace/frame.hpp> - -namespace boost { namespace stacktrace { namespace detail { - -std::string to_string(const frame* /*frames*/, std::size_t /*count*/) { - return std::string(); -} - -} // namespace detail - -std::string frame::name() const { - return std::string(); -} - -std::string frame::source_file() const { - return std::string(); -} - -std::size_t frame::source_line() const { - return 0; -} - -std::string to_string(const frame& /*f*/) { - return std::string(); -} - - -}} // namespace boost::stacktrace - -#endif // BOOST_STACKTRACE_DETAIL_FRAME_NOOP_IPP diff --git a/contrib/restricted/boost/boost/stacktrace/detail/safe_dump_noop.ipp b/contrib/restricted/boost/boost/stacktrace/detail/safe_dump_noop.ipp deleted file mode 100644 index 2bda3c92f90..00000000000 --- a/contrib/restricted/boost/boost/stacktrace/detail/safe_dump_noop.ipp +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright Antony Polukhin, 2016-2021. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_STACKTRACE_DETAIL_SAFE_DUMP_NOOP_IPP -#define BOOST_STACKTRACE_DETAIL_SAFE_DUMP_NOOP_IPP - -#include <boost/config.hpp> -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -#include <boost/stacktrace/safe_dump_to.hpp> - -namespace boost { namespace stacktrace { namespace detail { - - -#if defined(BOOST_WINDOWS) -std::size_t dump(void* /*fd*/, const native_frame_ptr_t* /*frames*/, std::size_t /*frames_count*/) BOOST_NOEXCEPT { - return 0; -} -#else -std::size_t dump(int /*fd*/, const native_frame_ptr_t* /*frames*/, std::size_t /*frames_count*/) BOOST_NOEXCEPT { - return 0; -} -#endif - - -std::size_t dump(const char* /*file*/, const native_frame_ptr_t* /*frames*/, std::size_t /*frames_count*/) BOOST_NOEXCEPT { - return 0; -} - -}}} // namespace boost::stacktrace::detail - -#endif // BOOST_STACKTRACE_DETAIL_SAFE_DUMP_NOOP_IPP diff --git a/contrib/restricted/boost/boost/stacktrace/detail/try_dec_convert.hpp b/contrib/restricted/boost/boost/stacktrace/detail/try_dec_convert.hpp deleted file mode 100644 index 46d811edb1a..00000000000 --- a/contrib/restricted/boost/boost/stacktrace/detail/try_dec_convert.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright Antony Polukhin, 2016-2021. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_STACKTRACE_DETAIL_TRY_DEC_CONVERT_HPP -#define BOOST_STACKTRACE_DETAIL_TRY_DEC_CONVERT_HPP - -#include <boost/config.hpp> -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -#include <cstdlib> - -namespace boost { namespace stacktrace { namespace detail { - -// We do not use boost::lexical_cast in this function to reduce module dependencies -inline bool try_dec_convert(const char* s, std::size_t& res) BOOST_NOEXCEPT { - char* end_ptr = 0; - res = std::strtoul(s, &end_ptr, 10); - return *end_ptr == '\0'; -} - - -}}} // namespace boost::stacktrace::detail - -#endif // BOOST_STACKTRACE_DETAIL_TRY_DEC_CONVERT_HPP diff --git a/contrib/restricted/boost/stacktrace/.yandex_meta/devtools.copyrights.report b/contrib/restricted/boost/stacktrace/.yandex_meta/devtools.copyrights.report new file mode 100644 index 00000000000..2c54eb6f164 --- /dev/null +++ b/contrib/restricted/boost/stacktrace/.yandex_meta/devtools.copyrights.report @@ -0,0 +1,100 @@ +# File format ($ symbol means the beginning of a line): +# +# $ # this message +# $ # ======================= +# $ # comments (all commentaries should starts with some number of spaces and # symbol) +# $ IGNORE_FILES {file1.ext1} {file2.ext2} - (optional) ignore listed files when generating license macro and credits +# $ RENAME {original license id} TO {new license id} # user comments - (optional) use {new license id} instead {original license id} in ya.make files +# $ # user comments +# $ +# ${action} {license id} {license text hash} +# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make +# ${all_file_action} filename +# $ # user commentaries (many lines) +# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify) +# ${action} {license spdx} {license text hash} +# $BELONGS ./ya/make/file/relative/path/3/ya.make +# ${all_file_action} filename +# $ # user commentaries +# $ generated description +# $ ... +# +# You can modify action, all_file_action and add commentaries +# Available actions: +# keep - keep license in contrib and use in credits +# skip - skip license +# remove - remove all files with this license +# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file +# +# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory) +# We suppose that that files can contain some license info +# Available all file actions: +# FILE_IGNORE - ignore file (do nothing) +# FILE_INCLUDE - include all file data into licenses text file +# ======================= + +KEEP COPYRIGHT_SERVICE_LABEL 2090c22b730be1f2aadcd050860177fe +BELONGS ya.make + License text: + // Copyright 2014 Renato Tegon Forti, Antony Polukhin. + // Copyright 2015-2021 Antony Polukhin. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + include/boost/stacktrace/detail/void_ptr_cast.hpp [1:2] + +KEEP COPYRIGHT_SERVICE_LABEL 43184d74bb6f0a9ca9f5562808734277 +BELONGS ya.make + License text: + // Copyright 2014 Renato Tegon Forti, Antony Polukhin. + // Copyright 2015-2021 Antony Polukhin. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + include/boost/stacktrace/detail/void_ptr_cast.hpp [1:2] + +KEEP COPYRIGHT_SERVICE_LABEL 56e1fa406fd925d2911213854bb27237 +BELONGS ya.make + License text: + // Copyright Antony Polukhin, 2016-2021. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + include/boost/stacktrace.hpp [1:1] + include/boost/stacktrace/detail/collect_msvc.ipp [1:1] + include/boost/stacktrace/detail/collect_unwind.ipp [1:1] + include/boost/stacktrace/detail/frame_decl.hpp [1:1] + include/boost/stacktrace/detail/frame_msvc.ipp [1:1] + include/boost/stacktrace/detail/frame_unwind.ipp [1:1] + include/boost/stacktrace/detail/libbacktrace_impls.hpp [1:1] + include/boost/stacktrace/detail/location_from_symbol.hpp [1:1] + include/boost/stacktrace/detail/pop_options.h [1:1] + include/boost/stacktrace/detail/push_options.h [1:1] + include/boost/stacktrace/detail/safe_dump_posix.ipp [1:1] + include/boost/stacktrace/detail/safe_dump_win.ipp [1:1] + include/boost/stacktrace/detail/to_dec_array.hpp [1:1] + include/boost/stacktrace/detail/to_hex_array.hpp [1:1] + include/boost/stacktrace/detail/unwind_base_impls.hpp [1:1] + include/boost/stacktrace/frame.hpp [1:1] + include/boost/stacktrace/safe_dump_to.hpp [1:1] + include/boost/stacktrace/stacktrace.hpp [1:1] + include/boost/stacktrace/stacktrace_fwd.hpp [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL e8010e4e32ce75b509416875de06cd1c +BELONGS ya.make + License text: + // Copyright Antony Polukhin, 2016-2020. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + src/backtrace.cpp [1:1] + src/basic.cpp [1:1] + src/windbg.cpp [1:1] diff --git a/contrib/restricted/boost/stacktrace/.yandex_meta/devtools.licenses.report b/contrib/restricted/boost/stacktrace/.yandex_meta/devtools.licenses.report new file mode 100644 index 00000000000..f713c2a78c1 --- /dev/null +++ b/contrib/restricted/boost/stacktrace/.yandex_meta/devtools.licenses.report @@ -0,0 +1,96 @@ +# File format ($ symbol means the beginning of a line): +# +# $ # this message +# $ # ======================= +# $ # comments (all commentaries should starts with some number of spaces and # symbol) +# $ IGNORE_FILES {file1.ext1} {file2.ext2} - (optional) ignore listed files when generating license macro and credits +# $ RENAME {original license id} TO {new license id} # user comments - (optional) use {new license id} instead {original license id} in ya.make files +# $ # user comments +# $ +# ${action} {license id} {license text hash} +# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make +# ${all_file_action} filename +# $ # user commentaries (many lines) +# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify) +# ${action} {license spdx} {license text hash} +# $BELONGS ./ya/make/file/relative/path/3/ya.make +# ${all_file_action} filename +# $ # user commentaries +# $ generated description +# $ ... +# +# You can modify action, all_file_action and add commentaries +# Available actions: +# keep - keep license in contrib and use in credits +# skip - skip license +# remove - remove all files with this license +# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file +# +# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory) +# We suppose that that files can contain some license info +# Available all file actions: +# FILE_IGNORE - ignore file (do nothing) +# FILE_INCLUDE - include all file data into licenses text file +# ======================= + +KEEP BSL-1.0 1e1b35c3ae13c65f63b2c7467cce8a87 +BELONGS ya.make + License text: + // Distributed under the Boost Software License, Version 1.0. + // (See accompanying file LICENSE_1_0.txt + // or copy at http://www.boost.org/LICENSE_1_0.txt) + Scancode info: + Original SPDX id: BSL-1.0 + Score : 100.00 + Match type : NOTICE + Links : http://www.boost.org/LICENSE_1_0.txt, http://www.boost.org/users/license.html, https://spdx.org/licenses/BSL-1.0 + Files with this license: + include/boost/stacktrace/detail/void_ptr_cast.hpp [4:6] + +KEEP BSL-1.0 47a0454637d4fa45d78eb2557ccd70c4 +BELONGS ya.make + License text: + // Distributed under the Boost Software License, Version 1.0. (See + // accompanying file LICENSE_1_0.txt or copy at + // http://www.boost.org/LICENSE_1_0.txt) + Scancode info: + Original SPDX id: BSL-1.0 + Score : 100.00 + Match type : NOTICE + Links : http://www.boost.org/LICENSE_1_0.txt, http://www.boost.org/users/license.html, https://spdx.org/licenses/BSL-1.0 + Files with this license: + include/boost/stacktrace.hpp [3:5] + include/boost/stacktrace/detail/collect_msvc.ipp [3:5] + include/boost/stacktrace/detail/collect_unwind.ipp [3:5] + include/boost/stacktrace/detail/frame_decl.hpp [3:5] + include/boost/stacktrace/detail/frame_msvc.ipp [3:5] + include/boost/stacktrace/detail/frame_unwind.ipp [3:5] + include/boost/stacktrace/detail/libbacktrace_impls.hpp [3:5] + include/boost/stacktrace/detail/location_from_symbol.hpp [3:5] + include/boost/stacktrace/detail/pop_options.h [3:5] + include/boost/stacktrace/detail/push_options.h [3:5] + include/boost/stacktrace/detail/safe_dump_posix.ipp [3:5] + include/boost/stacktrace/detail/safe_dump_win.ipp [3:5] + include/boost/stacktrace/detail/to_dec_array.hpp [3:5] + include/boost/stacktrace/detail/to_hex_array.hpp [3:5] + include/boost/stacktrace/detail/unwind_base_impls.hpp [3:5] + include/boost/stacktrace/frame.hpp [3:5] + include/boost/stacktrace/safe_dump_to.hpp [3:5] + include/boost/stacktrace/stacktrace.hpp [3:5] + include/boost/stacktrace/stacktrace_fwd.hpp [3:5] + src/backtrace.cpp [3:5] + src/basic.cpp [3:5] + src/windbg.cpp [3:5] + +KEEP BSL-1.0 49405d2ecd7026743895d965f0f645ef +BELONGS ya.make + License text: + License + Distributed under the [Boost Software License, Version 1.0](https://boost.org/LICENSE_1_0.txt). + Scancode info: + Original SPDX id: BSL-1.0 + Score : 50.00 + Match type : NOTICE + Links : http://www.boost.org/LICENSE_1_0.txt, http://www.boost.org/users/license.html, https://spdx.org/licenses/BSL-1.0 + Files with this license: + README.md [16:17] diff --git a/contrib/restricted/boost/stacktrace/.yandex_meta/licenses.list.txt b/contrib/restricted/boost/stacktrace/.yandex_meta/licenses.list.txt new file mode 100644 index 00000000000..c60781ea463 --- /dev/null +++ b/contrib/restricted/boost/stacktrace/.yandex_meta/licenses.list.txt @@ -0,0 +1,27 @@ +====================BSL-1.0==================== +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + + +====================BSL-1.0==================== +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + + +====================BSL-1.0==================== +License +Distributed under the [Boost Software License, Version 1.0](https://boost.org/LICENSE_1_0.txt). + +====================COPYRIGHT==================== +// Copyright 2014 Renato Tegon Forti, Antony Polukhin. +// Copyright 2015-2021 Antony Polukhin. + + +====================COPYRIGHT==================== +// Copyright Antony Polukhin, 2016-2020. + + +====================COPYRIGHT==================== +// Copyright Antony Polukhin, 2016-2021. diff --git a/contrib/restricted/boost/stacktrace/README.md b/contrib/restricted/boost/stacktrace/README.md new file mode 100644 index 00000000000..d129e8467e4 --- /dev/null +++ b/contrib/restricted/boost/stacktrace/README.md @@ -0,0 +1,17 @@ +# [Boost.Stacktrace](https://boost.org/libs/stacktrace) + +Library for storing and printing backtraces. + +Boost.Stacktrace is a part of the [Boost C++ Libraries](https://github.com/boostorg). + + +### Test results +@ | Build | Tests coverage | More info +----------------|-------------- | -------------- |----------- +Develop branch: | [](https://github.com/boostorg/stacktrace/actions/workflows/ci.yml) [](https://ci.appveyor.com/project/apolukhin/stacktrace/branch/develop) | [](https://coveralls.io/github/boostorg/stacktrace?branch=develop) | [details...](https://www.boost.org/development/tests/develop/developer/stacktrace.html) +Master branch: | [](https://github.com/boostorg/stacktrace/actions/workflows/ci.yml) [](https://ci.appveyor.com/project/apolukhin/stacktrace/branch/master) | [](https://coveralls.io/github/boostorg/stacktrace?branch=master) | [details...](https://www.boost.org/development/tests/master/developer/stacktrace.html) + +[Latest developer documentation](https://www.boost.org/doc/libs/develop/doc/html/stacktrace.html) + +### License +Distributed under the [Boost Software License, Version 1.0](https://boost.org/LICENSE_1_0.txt). diff --git a/contrib/restricted/boost/boost/stacktrace.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace.hpp index b458e3ad12c..b458e3ad12c 100644 --- a/contrib/restricted/boost/boost/stacktrace.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace.hpp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/collect_msvc.ipp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/collect_msvc.ipp index 7d41eb3515c..7d41eb3515c 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/collect_msvc.ipp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/collect_msvc.ipp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/collect_unwind.ipp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/collect_unwind.ipp index 6f99d4ad111..6f99d4ad111 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/collect_unwind.ipp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/collect_unwind.ipp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/frame_decl.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/frame_decl.hpp index 6248757ecb6..6248757ecb6 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/frame_decl.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/frame_decl.hpp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/frame_msvc.ipp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/frame_msvc.ipp index 2e7a3af6e1e..2e7a3af6e1e 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/frame_msvc.ipp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/frame_msvc.ipp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/frame_unwind.ipp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/frame_unwind.ipp index a5e21029f74..d3e26377fa6 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/frame_unwind.ipp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/frame_unwind.ipp @@ -24,7 +24,7 @@ #ifdef BOOST_STACKTRACE_USE_BACKTRACE # include <boost/stacktrace/detail/libbacktrace_impls.hpp> #elif defined(BOOST_STACKTRACE_USE_ADDR2LINE) -# include <boost/stacktrace/detail/addr2line_impls.hpp> +# error #include <boost/stacktrace/detail/addr2line_impls.hpp> #else # include <boost/stacktrace/detail/unwind_base_impls.hpp> #endif diff --git a/contrib/restricted/boost/boost/stacktrace/detail/libbacktrace_impls.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/libbacktrace_impls.hpp index 593133c3c61..dda168e58aa 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/libbacktrace_impls.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/libbacktrace_impls.hpp @@ -74,17 +74,16 @@ BOOST_SYMBOL_VISIBLE inline ::backtrace_state* construct_state(const program_loc // TODO: The most obvious solution: // static ::backtrace_state* state = ::backtrace_create_state( - prog_location.name(), - 1, // allow safe concurrent usage of the same state - boost::stacktrace::detail::libbacktrace_error_callback, - 0 // pointer to data that will be passed to callback + prog_location.name(), + 1, // allow safe concurrent usage of the same state + boost::stacktrace::detail::libbacktrace_error_callback, + 0 // pointer to data that will be passed to callback ); // // // Unfortunately, that solution segfaults when `construct_state()` function is in .so file // and multiple threads concurrently work with state. -// Code from TODO works fine in Arcadia (with statically linked libbacktrace) -- bugaevskiy@ #if 0 #ifndef BOOST_HAS_THREADS static @@ -128,7 +127,7 @@ struct to_string_using_backtrace { boost::stacktrace::detail::libbacktrace_full_callback, boost::stacktrace::detail::libbacktrace_error_callback, &data - ) + ) || ::backtrace_syminfo( state, diff --git a/contrib/restricted/boost/boost/stacktrace/detail/location_from_symbol.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/location_from_symbol.hpp index 5d6e2f19f70..5d6e2f19f70 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/location_from_symbol.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/location_from_symbol.hpp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/pop_options.h b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/pop_options.h index 5ab5fc6a213..5ab5fc6a213 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/pop_options.h +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/pop_options.h diff --git a/contrib/restricted/boost/boost/stacktrace/detail/push_options.h b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/push_options.h index 6d7e46b7ae9..6d7e46b7ae9 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/push_options.h +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/push_options.h diff --git a/contrib/restricted/boost/boost/stacktrace/detail/safe_dump_posix.ipp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/safe_dump_posix.ipp index bc79d5c8d84..bc79d5c8d84 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/safe_dump_posix.ipp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/safe_dump_posix.ipp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/safe_dump_win.ipp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/safe_dump_win.ipp index ab5445a8aa0..ab5445a8aa0 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/safe_dump_win.ipp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/safe_dump_win.ipp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/to_dec_array.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/to_dec_array.hpp index 8cdcdfcf88d..8cdcdfcf88d 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/to_dec_array.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/to_dec_array.hpp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/to_hex_array.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/to_hex_array.hpp index 84d88bff9ba..84d88bff9ba 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/to_hex_array.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/to_hex_array.hpp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/unwind_base_impls.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/unwind_base_impls.hpp index 9a4566a4c2c..9a4566a4c2c 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/unwind_base_impls.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/unwind_base_impls.hpp diff --git a/contrib/restricted/boost/boost/stacktrace/detail/void_ptr_cast.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/void_ptr_cast.hpp index 3247aab933f..3247aab933f 100644 --- a/contrib/restricted/boost/boost/stacktrace/detail/void_ptr_cast.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail/void_ptr_cast.hpp diff --git a/contrib/restricted/boost/boost/stacktrace/frame.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/frame.hpp index 6873dd0c02e..370f356f6ab 100644 --- a/contrib/restricted/boost/boost/stacktrace/frame.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/frame.hpp @@ -54,7 +54,7 @@ std::basic_ostream<CharT, TraitsT>& operator<<(std::basic_ostream<CharT, TraitsT #ifndef BOOST_STACKTRACE_LINK # if defined(BOOST_STACKTRACE_USE_NOOP) -# include <boost/stacktrace/detail/frame_noop.ipp> +# error #include <boost/stacktrace/detail/frame_noop.ipp> # elif defined(BOOST_MSVC) || defined(BOOST_STACKTRACE_USE_WINDBG) || defined(BOOST_STACKTRACE_USE_WINDBG_CACHED) # include <boost/stacktrace/detail/frame_msvc.ipp> # else diff --git a/contrib/restricted/boost/boost/stacktrace/safe_dump_to.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/safe_dump_to.hpp index f2301e6cb81..a4f08f19855 100644 --- a/contrib/restricted/boost/boost/stacktrace/safe_dump_to.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/safe_dump_to.hpp @@ -203,8 +203,8 @@ BOOST_FORCEINLINE std::size_t safe_dump_to(std::size_t skip, std::size_t max_dep #if !defined(BOOST_STACKTRACE_LINK) || defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) # if defined(BOOST_STACKTRACE_USE_NOOP) -# include <boost/stacktrace/detail/safe_dump_noop.ipp> -# include <boost/stacktrace/detail/collect_noop.ipp> +# error #include <boost/stacktrace/detail/safe_dump_noop.ipp> +# error #include <boost/stacktrace/detail/collect_noop.ipp> # else # if defined(BOOST_WINDOWS) # include <boost/stacktrace/detail/safe_dump_win.ipp> diff --git a/contrib/restricted/boost/boost/stacktrace/stacktrace.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/stacktrace.hpp index 243b0551994..243b0551994 100644 --- a/contrib/restricted/boost/boost/stacktrace/stacktrace.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/stacktrace.hpp diff --git a/contrib/restricted/boost/boost/stacktrace/stacktrace_fwd.hpp b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/stacktrace_fwd.hpp index d54a6369468..d54a6369468 100644 --- a/contrib/restricted/boost/boost/stacktrace/stacktrace_fwd.hpp +++ b/contrib/restricted/boost/stacktrace/include/boost/stacktrace/stacktrace_fwd.hpp diff --git a/contrib/restricted/boost/stacktrace/src/backtrace.cpp b/contrib/restricted/boost/stacktrace/src/backtrace.cpp new file mode 100644 index 00000000000..00d440ff68d --- /dev/null +++ b/contrib/restricted/boost/stacktrace/src/backtrace.cpp @@ -0,0 +1,19 @@ +// Copyright Antony Polukhin, 2016-2020. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#define BOOST_STACKTRACE_INTERNAL_BUILD_LIBS +#define BOOST_STACKTRACE_USE_BACKTRACE + +#ifndef BOOST_STACKTRACE_LINK +#error BOOST_STACKTRACE_LINK must be defined +#endif + +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif + +#include <boost/stacktrace/detail/frame_unwind.ipp> +#include <boost/stacktrace/safe_dump_to.hpp> diff --git a/contrib/restricted/boost/stacktrace/src/basic.cpp b/contrib/restricted/boost/stacktrace/src/basic.cpp new file mode 100644 index 00000000000..f21cc4fca92 --- /dev/null +++ b/contrib/restricted/boost/stacktrace/src/basic.cpp @@ -0,0 +1,18 @@ +// Copyright Antony Polukhin, 2016-2020. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#define BOOST_STACKTRACE_INTERNAL_BUILD_LIBS + +#ifndef BOOST_STACKTRACE_LINK +#error BOOST_STACKTRACE_LINK must be defined +#endif + +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif + +#include <boost/stacktrace/detail/frame_unwind.ipp> +#include <boost/stacktrace/safe_dump_to.hpp> diff --git a/contrib/restricted/boost/stacktrace/src/windbg.cpp b/contrib/restricted/boost/stacktrace/src/windbg.cpp new file mode 100644 index 00000000000..b58b3ea0f33 --- /dev/null +++ b/contrib/restricted/boost/stacktrace/src/windbg.cpp @@ -0,0 +1,10 @@ +// Copyright Antony Polukhin, 2016-2020. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#define BOOST_STACKTRACE_INTERNAL_BUILD_LIBS +#define BOOST_STACKTRACE_LINK +#include <boost/stacktrace/detail/frame_msvc.ipp> +#include <boost/stacktrace/safe_dump_to.hpp> |