CommonLib
Loading...
Searching...
No Matches
stack_frame.h
Go to the documentation of this file.
1#pragma once
2
3#include <filesystem>
4
5#include "line_info.h"
6#include "symbol_info.h"
7
8namespace hedgedev::csl::diag
9{
11 {
12 protected:
15
18
19 public:
21 void* module_base{};
22
23 symbol_info symbol_info{};
24 line_info line_info{};
25
26 virtual const std::filesystem::path& get_module_path(bool in_canonical = true) const
27 {
28 return in_canonical ? m_canonical_module_path : m_module_path;
29 }
30
31 virtual void set_module_path(const std::filesystem::path& in_path)
32 {
33 std::error_code error_code{};
34
35 m_module_path = in_path;
36 m_canonical_module_path = std::filesystem::canonical(m_module_path, error_code);
37
38 if (!error_code)
39 return;
40
41 m_canonical_module_path = m_module_path;
42 }
43
44 virtual bool has_symbol_info() const
45 {
46 return m_has_symbol_info;
47 }
48
49 virtual bool has_line_info() const
50 {
51 return m_has_line_info;
52 }
53 };
54}
Definition stack_frame.h:11
std::filesystem::path m_canonical_module_path
Definition stack_frame.h:14
virtual bool has_line_info() const
Definition stack_frame.h:49
virtual void set_module_path(const std::filesystem::path &in_path)
Definition stack_frame.h:31
bool m_has_line_info
Definition stack_frame.h:17
void * module_base
Definition stack_frame.h:21
virtual bool has_symbol_info() const
Definition stack_frame.h:44
void * program_counter
Definition stack_frame.h:20
virtual const std::filesystem::path & get_module_path(bool in_canonical=true) const
Definition stack_frame.h:26
bool m_has_symbol_info
Definition stack_frame.h:16
std::filesystem::path m_module_path
Definition stack_frame.h:13
Definition line_info.h:8
Definition symbol_info.h:8