#include "sanitizer_allocator_internal.h"
#include "sanitizer_internal_defs.h"
#include "sanitizer_platform.h"
#include "sanitizer_symbolizer_internal.h"
namespace __sanitizer {
Symbolizer *Symbolizer::GetOrInit() { … }
#if !SANITIZER_SYMBOLIZER_MARKUP
const char *ExtractToken(const char *str, const char *delims, char **result) { … }
const char *ExtractInt(const char *str, const char *delims, int *result) { … }
const char *ExtractUptr(const char *str, const char *delims, uptr *result) { … }
const char *ExtractSptr(const char *str, const char *delims, sptr *result) { … }
const char *ExtractTokenUpToDelimiter(const char *str, const char *delimiter,
char **result) { … }
SymbolizedStack *Symbolizer::SymbolizePC(uptr addr) { … }
bool Symbolizer::SymbolizeData(uptr addr, DataInfo *info) { … }
bool Symbolizer::SymbolizeFrame(uptr addr, FrameInfo *info) { … }
bool Symbolizer::GetModuleNameAndOffsetForPC(uptr pc, const char **module_name,
uptr *module_address) { … }
void Symbolizer::Flush() { … }
const char *Symbolizer::Demangle(const char *name) { … }
bool Symbolizer::FindModuleNameAndOffsetForAddress(uptr address,
const char **module_name,
uptr *module_offset,
ModuleArch *module_arch) { … }
void Symbolizer::RefreshModules() { … }
const ListOfModules &Symbolizer::GetRefreshedListOfModules() { … }
static const LoadedModule *SearchForModule(const ListOfModules &modules,
uptr address) { … }
const LoadedModule *Symbolizer::FindModuleForAddress(uptr address) { … }
class LLVMSymbolizerProcess final : public SymbolizerProcess { … };
LLVMSymbolizer::LLVMSymbolizer(const char *path, LowLevelAllocator *allocator)
: … { … }
static const char *ParseFileLineInfo(AddressInfo *info, const char *str) { … }
void ParseSymbolizePCOutput(const char *str, SymbolizedStack *res) { … }
void ParseSymbolizeDataOutput(const char *str, DataInfo *info) { … }
void ParseSymbolizeFrameOutput(const char *str,
InternalMmapVector<LocalInfo> *locals) { … }
bool LLVMSymbolizer::SymbolizePC(uptr addr, SymbolizedStack *stack) { … }
bool LLVMSymbolizer::SymbolizeData(uptr addr, DataInfo *info) { … }
bool LLVMSymbolizer::SymbolizeFrame(uptr addr, FrameInfo *info) { … }
const char *LLVMSymbolizer::FormatAndSendCommand(const char *command_prefix,
const char *module_name,
uptr module_offset,
ModuleArch arch) { … }
SymbolizerProcess::SymbolizerProcess(const char *path, bool use_posix_spawn)
: … { … }
static bool IsSameModule(const char* path) { … }
const char *SymbolizerProcess::SendCommand(const char *command) { … }
const char *SymbolizerProcess::SendCommandImpl(const char *command) { … }
bool SymbolizerProcess::Restart() { … }
bool SymbolizerProcess::ReadFromSymbolizer() { … }
bool SymbolizerProcess::WriteToSymbolizer(const char *buffer, uptr length) { … }
#endif
}