|
PStack
2.0
Stack trace printer for MSVC and GCC binaries
|
Wraps invocations into the Windows DbgHelp DLL onto a lazily-loaded version. More...
#include <debug_help_dll.hpp>


Construction / Destruction | |
| debug_help_dll () noexcept | |
| Construct (without loading) an instance to wrap DbgHelp.dll. | |
Public Interface | |
| void | load_all_functions () |
| Populates all loaded_function instances in from the library immediately. More... | |
DbgHelp Imports | |
| loaded_function< decltype(::StackWalk64)> | StackWalk64 |
| See MSDN for details on StackWalk64. | |
| loaded_function< decltype(::SymCleanup)> | SymCleanup |
| See MSDN for details on SymCleanup. | |
| loaded_function< decltype(::SymFromAddr)> | SymFromAddr |
| See MSDN for details on SymFromAddr. | |
| loaded_function< decltype(::SymFunctionTableAccess64)> | SymFunctionTableAccess64 |
| See MSDN for details on SymFunctionTableAccess64. | |
| loaded_function< decltype(::SymGetModuleBase64)> | SymGetModuleBase64 |
| See MSDN for details on SymGetModuleBase64. | |
| loaded_function< decltype(::SymGetOptions)> | SymGetOptions |
| See MSDN for details on SymGetOptions. | |
| loaded_function< decltype(::SymInitialize)> | SymInitialize |
| See MSDN for details on SymInitialize. | |
| loaded_function< decltype(::SymSetOptions)> | SymSetOptions |
| See MSDN for details on SymSetOptions. | |
Additional Inherited Members | |
Public Types inherited from psystem::shared_library | |
| using | library_version = uint32_t |
| Type for shared library versions. More... | |
Public Member Functions inherited from psystem::shared_library | |
| ~shared_library () noexcept | |
| Clean up the shared library. More... | |
| library_version | get_version () const |
| Access the version for the library that this instance wraps. More... | |
| bool | is_loaded () const noexcept |
| Determines if the shared library is mapped into the process space. More... | |
| void | load () |
| Loads the requested library into the current process space. More... | |
| void | unload () noexcept |
| Unload this library and clear the function pointers. More... | |
Protected Member Functions inherited from psystem::shared_library | |
| shared_library (std::string library_name, size_t num_functions) noexcept | |
| Construct a shared library instance (without loading the module). More... | |
| FARPROC | get_function (char const *export_name) const |
| Acquire a function pointer (by name) from a loaded library. More... | |
| template<size_t N> | |
| void | load_all_functions (char const *export_names[N]) |
Fully populate the m_functions data with addresses. More... | |
Protected Member Functions inherited from psystem::not_copyable | |
| not_copyable (not_copyable const &)=delete | |
| Delete the copy constructor. | |
| not_copyable & | operator= (not_copyable const &)=delete |
| Delete the assignment operator. | |
| constexpr | not_copyable () noexcept |
| A simple CTOR suitable for noexcept and constexpr uses. | |
| ~not_copyable () noexcept | |
| A simple CTOR suitable for noexcept uses. | |
Protected Attributes inherited from psystem::shared_library | |
| std::vector< FARPROC > | m_functions |
| The cache of function pointers gathered from a loaded library. | |
| psystem::shared_handle< HMODULE, nullptr > | m_library_handle |
The system handle to the loaded library. It may be nullptr. | |
| std::string | m_library_name |
| The (passed-in) name of the library that this class represents. | |
Wraps invocations into the Windows DbgHelp DLL onto a lazily-loaded version.
This decoupling of the "automatic" DLL invocation allows us to check the version of DbgHelp.dll before continuing. Slight API differences have caused difficulty in the past.
| void psystem::debug_help_dll::load_all_functions | ( | ) |
Populates all loaded_function instances in from the library immediately.
| psystem::exception::system_exception | if any of the following occur:
|