123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #ifndef BOOST_STACKTRACE_DETAIL_SAFE_DUMP_WIN_IPP
- #define BOOST_STACKTRACE_DETAIL_SAFE_DUMP_WIN_IPP
- #include <boost/config.hpp>
- #ifdef BOOST_HAS_PRAGMA_ONCE
- # pragma once
- #endif
- #include <boost/stacktrace/safe_dump_to.hpp>
- #include <boost/core/noncopyable.hpp>
- #include <boost/winapi/get_current_process.hpp>
- #include <boost/winapi/file_management.hpp>
- #include <boost/winapi/handles.hpp>
- #include <boost/winapi/access_rights.hpp>
- namespace boost { namespace stacktrace { namespace detail {
- std::size_t dump(void* , const native_frame_ptr_t* , std::size_t ) noexcept {
- #if 0
- boost::winapi::DWORD_ written;
- const boost::winapi::DWORD_ bytes_to_write = static_cast<boost::winapi::DWORD_>(
- sizeof(native_frame_ptr_t) * frames_count
- );
- if (!boost::winapi::WriteFile(fd, frames, bytes_to_write, &written, 0)) {
- return 0;
- }
- return frames_count;
- #endif
- return 0;
- }
- std::size_t dump(const char* , const native_frame_ptr_t* , std::size_t ) noexcept {
- #if 0
- void* const fd = boost::winapi::CreateFileA(
- file,
- boost::winapi::GENERIC_WRITE_,
- 0,
- 0,
- boost::winapi::CREATE_ALWAYS_,
- boost::winapi::FILE_ATTRIBUTE_NORMAL_,
- 0
- );
- if (fd == boost::winapi::invalid_handle_value) {
- return 0;
- }
- const std::size_t size = boost::stacktrace::detail::dump(fd, frames, frames_count);
- boost::winapi::CloseHandle(fd);
- return size;
- #endif
- return 0;
- }
- }}}
- #endif
|