19 #ifndef PSYSTEM_MODULE_INFO_HPP
20 #define PSYSTEM_MODULE_INFO_HPP
76 LOAD_DLL_DEBUG_INFO
const& info)
noexcept;
147 std::string
const& file_name,
195 #endif // PSYSTEM_MODULE_INFO_HPP
std::once_flag m_file_name_lock
Mutex for lazy generation of module_info::m_file_name.
Definition: module_info.hpp:174
static void init_file_name(HANDLE file_handle, std::string *out) noexcept
Lazy initialization used by the get_file_name() method.
Definition: module_info.cpp:98
Contains information about an executable image or shared library.
Definition: module_info.hpp:48
static void init_name(std::string const &file_name, std::string *out) noexcept
Lazy initialization used by the get_name() method.
Definition: module_info.cpp:137
address_t m_base_of_image
The base memory address into the module's data.
Definition: module_info.hpp:158
std::uintptr_t address_t
Container type for a memory address.
Definition: platform.hpp:221
Declare an RAII container for sharing system API handles (psystem::shared_handle).
address_t get_base_of_image() const noexcept
Access the base memory address for this module.
Definition: module_info.cpp:75
The basic header file for the PSystem namespce.
Share management of a single "handle" between multiple owners.
Definition: shared_handle.hpp:98
psystem::shared_handle m_file_handle
Shared ownership of the handle to the memory-mapped module.
Definition: module_info.hpp:155
Contains the process examination "system" and basic frameworks.
Definition: pstack_event_handler.hpp:28
~module_info() noexcept
Clean up resources used by the module_info instance.
Definition: module_info.cpp:69
std::string const & get_file_name() const noexcept
Access the module's full file name.
Definition: module_info.cpp:80
std::string m_file_name
The file name of the library / executable that defines this module.
Definition: module_info.hpp:165
module_info(psystem::shared_handle<> const &file_handle, CREATE_PROCESS_DEBUG_INFO const &info) noexcept
Construct a module_info instance for a process's executable.
Definition: module_info.cpp:41
std::once_flag m_name_lock
Mutex for lazy generation of module_info::m_name.
Definition: module_info.hpp:190
std::string const & get_name() const noexcept
Access the module's base name.
Definition: module_info.cpp:87
Information logging as well as error.
std::string m_name
The brief name of the module.
Definition: module_info.hpp:181