![]() |
User Manual, Developers Guide and API Documentation |
![]() |
00001 /******************************************************************************* 00002 * This file is part of openWNS (open Wireless Network Simulator) 00003 * _____________________________________________________________________________ 00004 * 00005 * Copyright (C) 2004-2007 00006 * Chair of Communication Networks (ComNets) 00007 * Kopernikusstr. 16, D-52074 Aachen, Germany 00008 * phone: ++49-241-80-27910, 00009 * fax: ++49-241-80-22242 00010 * email: info@openwns.org 00011 * www: http://www.openwns.org 00012 * _____________________________________________________________________________ 00013 * 00014 * openWNS is free software; you can redistribute it and/or modify it under the 00015 * terms of the GNU Lesser General Public License version 2 as published by the 00016 * Free Software Foundation; 00017 * 00018 * openWNS is distributed in the hope that it will be useful, but WITHOUT ANY 00019 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 00020 * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00021 * details. 00022 * 00023 * You should have received a copy of the GNU Lesser General Public License 00024 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00025 * 00026 ******************************************************************************/ 00027 00028 #ifndef WNS_BACKTRACE_HPP 00029 #define WNS_BACKTRACE_HPP 00030 00031 #include <WNS/IOutputStreamable.hpp> 00032 #include <vector> 00033 #include <list> 00034 00035 namespace wns { 00036 00044 class Backtrace : 00045 virtual public IOutputStreamable 00046 { 00047 typedef std::list<std::string> Lines; 00048 public: 00057 class FunctionCall 00058 { 00059 public: 00065 explicit 00066 FunctionCall(std::string line); 00067 00071 std::string 00072 getOrigin() const; 00073 00077 std::string 00078 getName() const; 00079 00083 std::string 00084 getOffset() const; 00085 00089 std::string 00090 getReturnAddress() const; 00091 00092 private: 00093 std::string origin_; 00094 std::string name_; 00095 std::string offset_; 00096 std::string returnAddress_; 00097 }; 00098 00099 typedef std::vector<FunctionCall> FunctionCalls; 00100 00105 Backtrace(); 00106 00110 virtual 00111 ~Backtrace(); 00112 00116 void 00117 snapshot(); 00118 00122 void 00123 clear(); 00124 00128 FunctionCalls 00129 getFunctionCalls() const; 00130 00131 private: 00136 virtual std::string 00137 doToString() const; 00138 00142 Lines backtrace_; 00143 }; 00144 } 00145 00146 #endif // NOT defined WNS_BACKTRACE_HPP
1.5.5