CommonLib
Toggle main menu visibility
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
8
namespace
hedgedev::csl::diag
9
{
10
class
stack_frame
11
{
12
protected
:
13
std
::
filesystem
::
path
m_module_path
{};
14
std
::
filesystem
::
path
m_canonical_module_path
{};
15
16
bool
m_has_symbol_info
{};
17
bool
m_has_line_info
{};
18
19
public
:
20
void
*
program_counter
{};
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
}
hedgedev::csl::diag::stack_frame
Definition
stack_frame.h:11
hedgedev::csl::diag::stack_frame::m_canonical_module_path
std::filesystem::path m_canonical_module_path
Definition
stack_frame.h:14
hedgedev::csl::diag::stack_frame::has_line_info
virtual bool has_line_info() const
Definition
stack_frame.h:49
hedgedev::csl::diag::stack_frame::set_module_path
virtual void set_module_path(const std::filesystem::path &in_path)
Definition
stack_frame.h:31
hedgedev::csl::diag::stack_frame::m_has_line_info
bool m_has_line_info
Definition
stack_frame.h:17
hedgedev::csl::diag::stack_frame::module_base
void * module_base
Definition
stack_frame.h:21
hedgedev::csl::diag::stack_frame::has_symbol_info
virtual bool has_symbol_info() const
Definition
stack_frame.h:44
hedgedev::csl::diag::stack_frame::program_counter
void * program_counter
Definition
stack_frame.h:20
hedgedev::csl::diag::stack_frame::get_module_path
virtual const std::filesystem::path & get_module_path(bool in_canonical=true) const
Definition
stack_frame.h:26
hedgedev::csl::diag::stack_frame::m_has_symbol_info
bool m_has_symbol_info
Definition
stack_frame.h:16
hedgedev::csl::diag::stack_frame::m_module_path
std::filesystem::path m_module_path
Definition
stack_frame.h:13
hedgedev::csl::diag::line_info
Definition
line_info.h:8
hedgedev::csl::diag::symbol_info
Definition
symbol_info.h:8
include
diag
stack_frame.h
Generated by
1.18.0