acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
call_stack.h
1/*
2 Copyright (ca) 2002
3 Author: Konstantin Boukreev
5 Created: 16.01.2002 12:36:26
6 Version: 1.0.0
7
8 Permission to use, copy, modify, distribute and sell this software
9 and its documentation for any purpose is hereby granted without fee,
10 provided that the above copyright notice appear in all copies and
11 that both that copyright notice and this permission notice appear
12 in supporting documentation. Konstantin Boukreev makes no representations
13 about the suitability of this software for any purpose.
14 It is provided "as is" without express or implied warranty.
15
16 the exception class holding the call stack's information
17
18 exception2 : std_exception
19
20 try {
21 }
22 catch(exception2& ex) {
23 std_cout << ex.trace_call();
24 }
25
26*/
27#pragma once
28
29
30
31
32class CLASS_DECL_ACME call_stack :
33 public ::matter
34{
35public:
36
37
38 const_char_pointer m_pszFormat;
39 const_char_pointer m_pszCallStack;
40 ::i32 m_iCount;
41
42 void * m_caller_address;
43
44
45 call_stack(const ::scoped_string & scopedstrFormat = default_format(), ::i32 iSkip = CALL_STACK_DEFAULT_SKIP_TRIGGER, void * caller_address = nullptr, ::i32 iCount = -1);
46 virtual ~call_stack();
47
48
49 //static void global_enable_stack_trace(bool bEnable = true);
50 static const_char_pointer default_format() { return "%f(%l) %s\n"; }
51
52 const_char_pointer get_dup(const ::scoped_string & scopedstrFormat = default_format(), ::i32 uiSkip = CALL_STACK_DEFAULT_SKIP_TRIGGER, ::i32 iCount = -1);
53
54 const_char_pointer xxxstack_trace() const;
55
56};
57
58