PLCnext API Documentation 23.6.0.37
StackTrace.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
8#include <list>
9
10namespace Arp { namespace System { namespace Commons { namespace Runtime
11{
12
14{
15public: // typedefs
16 typedef std::list<String> Items;
17
18public: // construction/destruction
20 StackTrace(void) = default;
22 StackTrace(const StackTrace& arg) = default;
24 StackTrace(const StackTrace&& arg);
26 StackTrace& operator=(const StackTrace& arg) = default;
28 ~StackTrace(void) = default;
29
30public: // operators
31
32public: // static operations
33 static StackTrace GetCurrent(int skipDepth = 0);
34
35public: // setter/getter operations
36 const Items& GetItems(void)const;
37
38public: // operations
39
40protected: // operations
41
42private: // static methods
43
44private: // methods
45 void Create(int skipDepth);
46 void CreateLinux(int skipDepth);
47 void CreateWindows(int skipDepth);
48
49private: // fields
50 Items items;
51
52private: // static fields
53 static constexpr size_t maxDepth = 64;
54
55};
56
58// inline methods of class StackTrace
59
60inline const StackTrace::Items& StackTrace::GetItems(void)const
61{
62 return this->items;
63}
64
65}}}} // end of namespace Arp::System::Commons::Runtime
Definition: StackTrace.hpp:14
StackTrace(void)=default
Constructs an StackTrace_ instance.
StackTrace(const StackTrace &&arg)
Move constructor.
StackTrace(const StackTrace &arg)=default
Copy constructor.
StackTrace & operator=(const StackTrace &arg)=default
Assignment operator.
~StackTrace(void)=default
Destructs this instance and frees all resources.
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API