From: Alexey Samsonov Date: Fri, 15 Feb 2013 08:54:47 +0000 (+0000) Subject: clang-formatize llvm-symbolizer code X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d5d7bb5591ec3f48ee45ce27a3dc18d16a9337fe;p=platform%2Fupstream%2Fllvm.git clang-formatize llvm-symbolizer code llvm-svn: 175255 --- diff --git a/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp b/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp index fe32178..86ea34b 100644 --- a/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp +++ b/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp @@ -22,13 +22,14 @@ namespace llvm { namespace symbolize { static bool error(error_code ec) { - if (!ec) return false; + if (!ec) + return false; errs() << "LLVMSymbolizer: error reading file: " << ec.message() << ".\n"; return true; } -static uint32_t getDILineInfoSpecifierFlags( - const LLVMSymbolizer::Options &Opts) { +static uint32_t +getDILineInfoSpecifierFlags(const LLVMSymbolizer::Options &Opts) { uint32_t Flags = llvm::DILineInfoSpecifier::FileLineInfo | llvm::DILineInfoSpecifier::AbsoluteFilePath; if (Opts.PrintFunctions) @@ -44,36 +45,32 @@ static void patchFunctionNameInDILineInfo(const std::string &NewFunctionName, } ModuleInfo::ModuleInfo(ObjectFile *Obj, DIContext *DICtx) - : Module(Obj) - , DebugInfoContext(DICtx) { + : Module(Obj), DebugInfoContext(DICtx) { error_code ec; - for (symbol_iterator si = Module->begin_symbols(), - se = Module->end_symbols(); - si != se; si.increment(ec)) { + for (symbol_iterator si = Module->begin_symbols(), se = Module->end_symbols(); + si != se; si.increment(ec)) { if (error(ec)) return; SymbolRef::Type SymbolType; if (error(si->getType(SymbolType))) continue; - if (SymbolType != SymbolRef::ST_Function - && SymbolType != SymbolRef::ST_Data) + if (SymbolType != SymbolRef::ST_Function && + SymbolType != SymbolRef::ST_Data) continue; uint64_t SymbolAddress; - if (error(si->getAddress(SymbolAddress)) - || SymbolAddress == UnknownAddressOrSize) + if (error(si->getAddress(SymbolAddress)) || + SymbolAddress == UnknownAddressOrSize) continue; uint64_t SymbolSize; - if (error(si->getSize(SymbolSize)) - || SymbolSize == UnknownAddressOrSize) + if (error(si->getSize(SymbolSize)) || SymbolSize == UnknownAddressOrSize) continue; StringRef SymbolName; if (error(si->getName(SymbolName))) continue; // FIXME: If a function has alias, there are two entries in symbol table // with same address size. Make sure we choose the correct one. - SymbolMapTy &M = SymbolType == SymbolRef::ST_Function ? - Functions : Objects; - SymbolDesc SD = {SymbolAddress, SymbolAddress + SymbolSize}; + SymbolMapTy &M = SymbolType == SymbolRef::ST_Function ? Functions : Objects; + SymbolDesc SD = { SymbolAddress, SymbolAddress + SymbolSize }; M.insert(std::make_pair(SD, SymbolName)); } } @@ -81,9 +78,8 @@ ModuleInfo::ModuleInfo(ObjectFile *Obj, DIContext *DICtx) bool ModuleInfo::getNameFromSymbolTable(SymbolRef::Type Type, uint64_t Address, std::string &Name, uint64_t &Addr, uint64_t &Size) const { - const SymbolMapTy& M = Type == SymbolRef::ST_Function ? - Functions : Objects; - SymbolDesc SD = {Address, Address + 1}; + const SymbolMapTy &M = Type == SymbolRef::ST_Function ? Functions : Objects; + SymbolDesc SD = { Address, Address + 1 }; SymbolMapTy::const_iterator it = M.find(SD); if (it == M.end()) return false; @@ -95,8 +91,8 @@ bool ModuleInfo::getNameFromSymbolTable(SymbolRef::Type Type, uint64_t Address, return true; } -DILineInfo ModuleInfo::symbolizeCode(uint64_t ModuleOffset, - const LLVMSymbolizer::Options& Opts) const { +DILineInfo ModuleInfo::symbolizeCode( + uint64_t ModuleOffset, const LLVMSymbolizer::Options &Opts) const { DILineInfo LineInfo; if (DebugInfoContext) { LineInfo = DebugInfoContext->getLineInfoForAddress( @@ -106,16 +102,16 @@ DILineInfo ModuleInfo::symbolizeCode(uint64_t ModuleOffset, if (Opts.PrintFunctions && Opts.UseSymbolTable) { std::string FunctionName; uint64_t Start, Size; - if (getNameFromSymbolTable(SymbolRef::ST_Function, - ModuleOffset, FunctionName, Start, Size)) { + if (getNameFromSymbolTable(SymbolRef::ST_Function, ModuleOffset, + FunctionName, Start, Size)) { patchFunctionNameInDILineInfo(FunctionName, LineInfo); } } return LineInfo; } -DIInliningInfo ModuleInfo::symbolizeInlinedCode(uint64_t ModuleOffset, - const LLVMSymbolizer::Options& Opts) const { +DIInliningInfo ModuleInfo::symbolizeInlinedCode( + uint64_t ModuleOffset, const LLVMSymbolizer::Options &Opts) const { DIInliningInfo InlinedContext; if (DebugInfoContext) { InlinedContext = DebugInfoContext->getInliningInfoForAddress( @@ -128,14 +124,13 @@ DIInliningInfo ModuleInfo::symbolizeInlinedCode(uint64_t ModuleOffset, // Override the function name in lower frame with name from symbol table. if (Opts.PrintFunctions && Opts.UseSymbolTable) { DIInliningInfo PatchedInlinedContext; - for (uint32_t i = 0, n = InlinedContext.getNumberOfFrames(); - i < n; i++) { + for (uint32_t i = 0, n = InlinedContext.getNumberOfFrames(); i < n; i++) { DILineInfo LineInfo = InlinedContext.getFrame(i); if (i == n - 1) { std::string FunctionName; uint64_t Start, Size; - if (getNameFromSymbolTable(SymbolRef::ST_Function, - ModuleOffset, FunctionName, Start, Size)) { + if (getNameFromSymbolTable(SymbolRef::ST_Function, ModuleOffset, + FunctionName, Start, Size)) { patchFunctionNameInDILineInfo(FunctionName, LineInfo); } } @@ -148,8 +143,8 @@ DIInliningInfo ModuleInfo::symbolizeInlinedCode(uint64_t ModuleOffset, bool ModuleInfo::symbolizeData(uint64_t ModuleOffset, std::string &Name, uint64_t &Start, uint64_t &Size) const { - return getNameFromSymbolTable(SymbolRef::ST_Data, - ModuleOffset, Name, Start, Size); + return getNameFromSymbolTable(SymbolRef::ST_Data, ModuleOffset, Name, Start, + Size); } const char LLVMSymbolizer::kBadString[] = "??"; @@ -160,8 +155,8 @@ std::string LLVMSymbolizer::symbolizeCode(const std::string &ModuleName, if (Info == 0) return printDILineInfo(DILineInfo()); if (Opts.PrintInlining) { - DIInliningInfo InlinedContext = Info->symbolizeInlinedCode( - ModuleOffset, Opts); + DIInliningInfo InlinedContext = + Info->symbolizeInlinedCode(ModuleOffset, Opts); uint32_t FramesNum = InlinedContext.getNumberOfFrames(); assert(FramesNum > 0); std::string Result; @@ -192,8 +187,7 @@ std::string LLVMSymbolizer::symbolizeData(const std::string &ModuleName, } // Returns true if the object endianness is known. -static bool getObjectEndianness(const ObjectFile *Obj, - bool &IsLittleEndian) { +static bool getObjectEndianness(const ObjectFile *Obj, bool &IsLittleEndian) { // FIXME: Implement this when libLLVMObject allows to do it easily. IsLittleEndian = true; return true; @@ -215,8 +209,8 @@ static std::string getDarwinDWARFResourceForModule(const std::string &Path) { return ResourceName.str(); } -ModuleInfo *LLVMSymbolizer::getOrCreateModuleInfo( - const std::string &ModuleName) { +ModuleInfo * +LLVMSymbolizer::getOrCreateModuleInfo(const std::string &ModuleName) { ModuleMapTy::iterator I = Modules.find(ModuleName); if (I != Modules.end()) return I->second; @@ -224,7 +218,7 @@ ModuleInfo *LLVMSymbolizer::getOrCreateModuleInfo( ObjectFile *Obj = getObjectFile(ModuleName); if (Obj == 0) { // Module name doesn't point to a valid object file. - Modules.insert(make_pair(ModuleName, (ModuleInfo*)0)); + Modules.insert(make_pair(ModuleName, (ModuleInfo *)0)); return 0; } @@ -235,8 +229,8 @@ ModuleInfo *LLVMSymbolizer::getOrCreateModuleInfo( // resource directory. ObjectFile *DbgObj = Obj; if (isa(Obj)) { - const std::string &ResourceName = getDarwinDWARFResourceForModule( - ModuleName); + const std::string &ResourceName = + getDarwinDWARFResourceForModule(ModuleName); ObjectFile *ResourceObj = getObjectFile(ResourceName); if (ResourceObj != 0) DbgObj = ResourceObj; @@ -265,8 +259,8 @@ std::string LLVMSymbolizer::printDILineInfo(DILineInfo LineInfo) const { std::string Filename = LineInfo.getFileName(); if (Filename == kDILineInfoBadString) Filename = kBadString; - Result << Filename << ":" << LineInfo.getLine() - << ":" << LineInfo.getColumn() << "\n"; + Result << Filename << ":" << LineInfo.getLine() << ":" << LineInfo.getColumn() + << "\n"; return Result.str(); } @@ -289,5 +283,5 @@ void LLVMSymbolizer::DemangleName(std::string &Name) const { #endif } -} // namespace symbolize -} // namespace llvm +} // namespace symbolize +} // namespace llvm diff --git a/llvm/tools/llvm-symbolizer/LLVMSymbolize.h b/llvm/tools/llvm-symbolizer/LLVMSymbolize.h index 1755e1d..e6220aa 100644 --- a/llvm/tools/llvm-symbolizer/LLVMSymbolize.h +++ b/llvm/tools/llvm-symbolizer/LLVMSymbolize.h @@ -30,50 +30,49 @@ class ModuleInfo; class LLVMSymbolizer { public: - struct Options { + struct Options { bool UseSymbolTable : 1; bool PrintFunctions : 1; bool PrintInlining : 1; bool Demangle : 1; Options(bool UseSymbolTable = true, bool PrintFunctions = true, bool PrintInlining = true, bool Demangle = true) - : UseSymbolTable(UseSymbolTable), - PrintFunctions(PrintFunctions), - PrintInlining(PrintInlining), - Demangle(Demangle) { } + : UseSymbolTable(UseSymbolTable), PrintFunctions(PrintFunctions), + PrintInlining(PrintInlining), Demangle(Demangle) { + } }; - LLVMSymbolizer(const Options &Opts = Options()) : Opts(Opts) { } + LLVMSymbolizer(const Options &Opts = Options()) : Opts(Opts) {} // Returns the result of symbolization for module name/offset as // a string (possibly containing newlines). - std::string symbolizeCode(const std::string &ModuleName, - uint64_t ModuleOffset); - std::string symbolizeData(const std::string &ModuleName, - uint64_t ModuleOffset); + std::string + symbolizeCode(const std::string &ModuleName, uint64_t ModuleOffset); + std::string + symbolizeData(const std::string &ModuleName, uint64_t ModuleOffset); private: ModuleInfo *getOrCreateModuleInfo(const std::string &ModuleName); std::string printDILineInfo(DILineInfo LineInfo) const; void DemangleName(std::string &Name) const; - typedef std::map ModuleMapTy; + typedef std::map ModuleMapTy; ModuleMapTy Modules; Options Opts; static const char kBadString[]; }; class ModuleInfo { - public: +public: ModuleInfo(ObjectFile *Obj, DIContext *DICtx); - DILineInfo symbolizeCode( - uint64_t ModuleOffset, const LLVMSymbolizer::Options& Opts) const; + DILineInfo symbolizeCode(uint64_t ModuleOffset, + const LLVMSymbolizer::Options &Opts) const; DIInliningInfo symbolizeInlinedCode( - uint64_t ModuleOffset, const LLVMSymbolizer::Options& Opts) const; - bool symbolizeData(uint64_t ModuleOffset, std::string &Name, - uint64_t &Start, uint64_t &Size) const; + uint64_t ModuleOffset, const LLVMSymbolizer::Options &Opts) const; + bool symbolizeData(uint64_t ModuleOffset, std::string &Name, uint64_t &Start, + uint64_t &Size) const; - private: +private: bool getNameFromSymbolTable(SymbolRef::Type Type, uint64_t Address, std::string &Name, uint64_t &Addr, uint64_t &Size) const; @@ -83,7 +82,7 @@ class ModuleInfo { struct SymbolDesc { uint64_t Addr; uint64_t AddrEnd; - friend bool operator<(const SymbolDesc& s1, const SymbolDesc& s2) { + friend bool operator<(const SymbolDesc &s1, const SymbolDesc &s2) { return s1.AddrEnd <= s2.Addr; } }; @@ -92,7 +91,7 @@ class ModuleInfo { SymbolMapTy Objects; }; -} // namespace symbolize -} // namespace llvm +} // namespace symbolize +} // namespace llvm -#endif // LLVM_SYMBOLIZE_H +#endif // LLVM_SYMBOLIZE_H diff --git a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp index 819f1f8..d039ec6 100644 --- a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp +++ b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp @@ -32,24 +32,22 @@ using namespace symbolize; static cl::opt ClUseSymbolTable("use-symbol-table", cl::init(true), - cl::desc("Prefer names in symbol table to names " - "in debug info")); + cl::desc("Prefer names in symbol table to names " + "in debug info")); static cl::opt ClPrintFunctions("functions", cl::init(true), - cl::desc("Print function names as well as line " - "information for a given address")); + cl::desc("Print function names as well as line " + "information for a given address")); static cl::opt ClPrintInlining("inlining", cl::init(true), - cl::desc("Print all inlined frames for a given address")); + cl::desc("Print all inlined frames for a given address")); static cl::opt -ClDemangle("demangle", cl::init(true), - cl::desc("Demangle function names")); +ClDemangle("demangle", cl::init(true), cl::desc("Demangle function names")); -static bool parseCommand(bool &IsData, - std::string &ModuleName, +static bool parseCommand(bool &IsData, std::string &ModuleName, uint64_t &ModuleOffset) { const char *kDataCmd = "DATA "; const char *kCodeCmd = "CODE "; @@ -75,7 +73,7 @@ static bool parseCommand(bool &IsData, // FIXME: Handle case when filename is given in quotes. if (char *FilePath = strtok(pos, kDelimiters)) { ModuleName = FilePath; - if (char *OffsetStr = strtok((char*)0, kDelimiters)) + if (char *OffsetStr = strtok((char *)0, kDelimiters)) ModuleOffsetStr = OffsetStr; } if (StringRef(ModuleOffsetStr).getAsInteger(0, ModuleOffset)) @@ -87,7 +85,7 @@ int main(int argc, char **argv) { // Print stack trace if we signal out. sys::PrintStackTraceOnErrorSignal(); PrettyStackTraceProgram X(argc, argv); - llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. + llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, "llvm symbolizer for compiler-rt\n"); LLVMSymbolizer::Options Opts(ClUseSymbolTable, ClPrintFunctions,