diff options
Diffstat (limited to 'boost/detail/winapi/dbghelp.hpp')
-rw-r--r-- | boost/detail/winapi/dbghelp.hpp | 171 |
1 files changed, 10 insertions, 161 deletions
diff --git a/boost/detail/winapi/dbghelp.hpp b/boost/detail/winapi/dbghelp.hpp index 74add558b8..e63ba6452d 100644 --- a/boost/detail/winapi/dbghelp.hpp +++ b/boost/detail/winapi/dbghelp.hpp @@ -1,171 +1,20 @@ -// dbghelp.hpp --------------------------------------------------------------// - -// Copyright 2015 Klemens Morgenstern -// Copyright 2016 Jorge Lodos -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - +/* + * Copyright 2017 Andrey Semashev + * + * Distributed under the Boost Software License, Version 1.0. + * See http://www.boost.org/LICENSE_1_0.txt + * + * This header is deprecated, use boost/winapi/dbghelp.hpp instead. + */ #ifndef BOOST_DETAIL_WINAPI_DBGHELP_HPP #define BOOST_DETAIL_WINAPI_DBGHELP_HPP -#include <boost/detail/winapi/basic_types.hpp> - -#if defined( BOOST_USE_WINDOWS_H ) -#if !defined( BOOST_WINAPI_IS_MINGW ) -#include <dbghelp.h> -#else -// In MinGW there is no dbghelp.h but an older imagehlp.h header defines some of the symbols from it. -// Note that the user has to link with libimagehlp.a instead of libdbghelp.a for it to work. -#include <imagehlp.h> -#endif -#endif +#include <boost/winapi/dbghelp.hpp> +#include <boost/detail/winapi/detail/deprecated_namespace.hpp> #ifdef BOOST_HAS_PRAGMA_ONCE #pragma once #endif -// Some symbols declared below are not present in all versions of Windows SDK, MinGW and MinGW-w64. -// dbghelp.h/imagehlp.h define the API_VERSION_NUMBER macro which we use to detect its version. -// When the macro is not available we can only guess based on the compiler version or SDK type. -#if defined(API_VERSION_NUMBER) -#if API_VERSION_NUMBER >= 11 -// UnDecorateSymbolNameW available since Windows SDK 6.0A and MinGW-w64 (as of 2016-02-14) -#define BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW -#endif -#elif defined(_MSC_VER) && _MSC_VER >= 1500 -// Until MSVC 9.0 Windows SDK was bundled in Visual Studio and didn't have UnDecorateSymbolNameW. -// Supposedly, Windows SDK 6.0A was the first standalone one and it is used with MSVC 9.0. -#define BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW -#elif !defined(BOOST_WINAPI_IS_MINGW) -// MinGW does not provide UnDecorateSymbolNameW (as of 2016-02-14) -#define BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -struct API_VERSION; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -UnDecorateSymbolName( - boost::detail::winapi::LPCSTR_ DecoratedName, - boost::detail::winapi::LPSTR_ UnDecoratedName, - boost::detail::winapi::DWORD_ UndecoratedLength, - boost::detail::winapi::DWORD_ Flags); - -#if defined( BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -UnDecorateSymbolNameW( - boost::detail::winapi::LPCWSTR_ DecoratedName, - boost::detail::winapi::LPWSTR_ UnDecoratedName, - boost::detail::winapi::DWORD_ UndecoratedLength, - boost::detail::winapi::DWORD_ Flags); -#endif - -BOOST_SYMBOL_IMPORT API_VERSION* WINAPI -ImagehlpApiVersion(BOOST_DETAIL_WINAPI_VOID); - -} // extern "C" -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ UNDNAME_COMPLETE_ = UNDNAME_COMPLETE; -const DWORD_ UNDNAME_NO_LEADING_UNDERSCORES_ = UNDNAME_NO_LEADING_UNDERSCORES; -const DWORD_ UNDNAME_NO_MS_KEYWORDS_ = UNDNAME_NO_MS_KEYWORDS; -const DWORD_ UNDNAME_NO_FUNCTION_RETURNS_ = UNDNAME_NO_FUNCTION_RETURNS; -const DWORD_ UNDNAME_NO_ALLOCATION_MODEL_ = UNDNAME_NO_ALLOCATION_MODEL; -const DWORD_ UNDNAME_NO_ALLOCATION_LANGUAGE_ = UNDNAME_NO_ALLOCATION_LANGUAGE; -const DWORD_ UNDNAME_NO_MS_THISTYPE_ = UNDNAME_NO_MS_THISTYPE; -const DWORD_ UNDNAME_NO_CV_THISTYPE_ = UNDNAME_NO_CV_THISTYPE; -const DWORD_ UNDNAME_NO_THISTYPE_ = UNDNAME_NO_THISTYPE; -const DWORD_ UNDNAME_NO_ACCESS_SPECIFIERS_ = UNDNAME_NO_ACCESS_SPECIFIERS; -const DWORD_ UNDNAME_NO_THROW_SIGNATURES_ = UNDNAME_NO_THROW_SIGNATURES; -const DWORD_ UNDNAME_NO_MEMBER_TYPE_ = UNDNAME_NO_MEMBER_TYPE; -const DWORD_ UNDNAME_NO_RETURN_UDT_MODEL_ = UNDNAME_NO_RETURN_UDT_MODEL; -const DWORD_ UNDNAME_32_BIT_DECODE_ = UNDNAME_32_BIT_DECODE; -const DWORD_ UNDNAME_NAME_ONLY_ = UNDNAME_NAME_ONLY; -const DWORD_ UNDNAME_NO_ARGUMENTS_ = UNDNAME_NO_ARGUMENTS; -const DWORD_ UNDNAME_NO_SPECIAL_SYMS_ = UNDNAME_NO_SPECIAL_SYMS; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ UNDNAME_COMPLETE_ = 0x00000000; -const DWORD_ UNDNAME_NO_LEADING_UNDERSCORES_ = 0x00000001; -const DWORD_ UNDNAME_NO_MS_KEYWORDS_ = 0x00000002; -const DWORD_ UNDNAME_NO_FUNCTION_RETURNS_ = 0x00000004; -const DWORD_ UNDNAME_NO_ALLOCATION_MODEL_ = 0x00000008; -const DWORD_ UNDNAME_NO_ALLOCATION_LANGUAGE_ = 0x00000010; -const DWORD_ UNDNAME_NO_MS_THISTYPE_ = 0x00000020; -const DWORD_ UNDNAME_NO_CV_THISTYPE_ = 0x00000040; -const DWORD_ UNDNAME_NO_THISTYPE_ = 0x00000060; -const DWORD_ UNDNAME_NO_ACCESS_SPECIFIERS_ = 0x00000080; -const DWORD_ UNDNAME_NO_THROW_SIGNATURES_ = 0x00000100; -const DWORD_ UNDNAME_NO_MEMBER_TYPE_ = 0x00000200; -const DWORD_ UNDNAME_NO_RETURN_UDT_MODEL_ = 0x00000400; -const DWORD_ UNDNAME_32_BIT_DECODE_ = 0x00000800; -const DWORD_ UNDNAME_NAME_ONLY_ = 0x00001000; -const DWORD_ UNDNAME_NO_ARGUMENTS_ = 0x00002000; -const DWORD_ UNDNAME_NO_SPECIAL_SYMS_ = 0x00004000; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -using ::UnDecorateSymbolName; -#if defined( BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW ) -using ::UnDecorateSymbolNameW; -#endif - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS API_VERSION { - USHORT_ MajorVersion; - USHORT_ MinorVersion; - USHORT_ Revision; - USHORT_ Reserved; -} API_VERSION_, *LPAPI_VERSION_; - -BOOST_FORCEINLINE LPAPI_VERSION_ ImagehlpApiVersion() -{ - return reinterpret_cast<LPAPI_VERSION_>(::ImagehlpApiVersion()); -} - -BOOST_FORCEINLINE DWORD_ undecorate_symbol_name( - LPCSTR_ DecoratedName, - LPSTR_ UnDecoratedName, - DWORD_ UndecoratedLength, - DWORD_ Flags) -{ - return ::UnDecorateSymbolName( - DecoratedName, - UnDecoratedName, - UndecoratedLength, - Flags); -} - -#if defined( BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW ) - -BOOST_FORCEINLINE DWORD_ undecorate_symbol_name( - LPCWSTR_ DecoratedName, - LPWSTR_ UnDecoratedName, - DWORD_ UndecoratedLength, - DWORD_ Flags) -{ - return ::UnDecorateSymbolNameW( - DecoratedName, - UnDecoratedName, - UndecoratedLength, - Flags); -} - -#endif - -} -} -} - #endif // BOOST_DETAIL_WINAPI_DBGHELP_HPP |