μHAL (v2.6.5)
Part of the IPbus software repository
BacktraceSymbols.hpp
Go to the documentation of this file.
1 #ifdef USE_BACKTRACE
2 
3 /*
4 ---------------------------------------------------------------------------
5 
6  This file is part of uHAL.
7 
8  uHAL is a hardware access library and programming framework
9  originally developed for upgrades of the Level-1 trigger of the CMS
10  experiment at CERN.
11 
12  uHAL is free software: you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation, either version 3 of the License, or
15  (at your option) any later version.
16 
17  uHAL is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with uHAL. If not, see <http://www.gnu.org/licenses/>.
24 
25 
26  Andrew Rose, Imperial College, London
27  email: awr01 <AT> imperial.ac.uk
28 
29  Marc Magrans de Abril, CERN
30  email: marc.magrans.de.abril <AT> cern.ch
31 
32 ---------------------------------------------------------------------------
33 */
34 
41 #ifndef _uhal_log_BacktraceSymbols_hpp_
42 #define _uhal_log_BacktraceSymbols_hpp_
43 
44 
45 #include <cstddef>
46 #include <stdint.h>
47 #include <vector>
48 #include <string>
49 #include <boost/thread/mutex.hpp>
50 
51 namespace Backtrace
52 {
53  struct TracePoint
54  {
55  TracePoint() : file ( "" ) , function ( "" ) , line ( 0 ) {}
56 
57  std::string file;
58  std::string function;
59  uint32_t line;
60  };
61 
62 
63  void Backtrace ( std::vector< void* >& aBacktrace );
64 
65  std::vector< TracePoint > BacktraceSymbols ( const std::vector< void* >& aBacktrace );
66 }
67 
68 #endif
69 
70 #endif