-/* $Id$
-
-This file is part of libmspcore
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
#ifndef MSP_DEBUG_BACKTRACE_H_
#define MSP_DEBUG_BACKTRACE_H_
-#include <list>
#include <ostream>
#include <string>
+#include <vector>
+#include <msp/core/mspcore_api.h>
namespace Msp {
namespace Debug {
-class Backtrace
+class MSPCORE_API Backtrace
{
public:
struct StackFrame
{
- void *address;
+ void *address = nullptr;
std::string file;
std::string symbol;
-
- //StackFrame(void *a, const std::string &s): address(a), symbol(s) { }
};
- typedef std::list<StackFrame> FrameSeq;
- const FrameSeq &get_frames() const { return frames; }
+private:
+ std::vector<StackFrame> frames;
+
+public:
+ const std::vector<StackFrame> &get_frames() const { return frames; }
static Backtrace create();
-private:
- FrameSeq frames;
};
-std::ostream &operator<<(std::ostream &, const Backtrace &);
+MSPCORE_API std::ostream &operator<<(std::ostream &, const Backtrace &);
+MSPCORE_API std::ostream &operator<<(std::ostream &, const Backtrace::StackFrame &);
} // namespace Debug
} // namespace Msp