| 142 | }; |
| 143 | |
| 144 | struct DebugModule |
| 145 | { |
| 146 | std::string m_name {}, m_short_name {}; |
| 147 | std::uintptr_t m_address {}; |
| 148 | std::size_t m_size {}; |
| 149 | bool m_loaded {}; |
| 150 | |
| 151 | DebugModule() : m_name(""), m_short_name(""), m_address(0), m_size(0) {} |
| 152 | |
| 153 | DebugModule(std::string name, std::string short_name, std::uintptr_t address, std::size_t size, bool loaded) : |
| 154 | m_name(std::move(name)), m_short_name(std::move(short_name)), m_address(address), m_size(size), |
| 155 | m_loaded(loaded) |
| 156 | {} |
| 157 | |
| 158 | // These are useful for remote debugging. Paths can be different on the host and guest systems, e.g., |
| 159 | // /usr/bin/ls, and C:\Users\user\Desktop\ls. So we must compare the base file name, rather than the full path. |
| 160 | bool IsSameBaseModule(const DebugModule& other) const; |
| 161 | |
| 162 | bool IsSameBaseModule(const std::string& name) const; |
| 163 | |
| 164 | static bool IsSameBaseModule(const std::string& module, const std::string& module2); |
| 165 | |
| 166 | static std::string GetPathBaseName(const std::string& path); |
| 167 | }; |
| 168 | |
| 169 | struct DebugFrame |
| 170 | { |