30 lines
728 B
C
30 lines
728 B
C
|
#pragma once
|
||
|
|
||
|
#include "ustring.h"
|
||
|
#include "umap.h"
|
||
|
#include "Stabs2DebugInfo.h"
|
||
|
|
||
|
|
||
|
// The limit for function names, after that, they will get capped
|
||
|
#define CALL_FUNC_NAME_LIMIT 256
|
||
|
#define CALL_FUNC_NAME_LIMIT_STR macroToString(CALL_FUNC_NAME_LIMIT)
|
||
|
|
||
|
class SWEBDebugInfo : public Stabs2DebugInfo {
|
||
|
public:
|
||
|
|
||
|
SWEBDebugInfo(char const *sweb_begin, char const *sweb_end);
|
||
|
|
||
|
virtual ~SWEBDebugInfo();
|
||
|
|
||
|
virtual void getCallNameAndLine(pointer address, const char *&mangled_name, ssize_t &line) const;
|
||
|
|
||
|
virtual void printCallInformation(pointer address) const;
|
||
|
|
||
|
private:
|
||
|
ustl::map<size_t, ustl::string> file_addrs_;
|
||
|
ustl::map<size_t, const char*> function_defs_;
|
||
|
|
||
|
virtual void initialiseSymbolTable();
|
||
|
|
||
|
};
|