1//===- ObjectFileTransformer.h ----------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef LLVM_DEBUGINFO_GSYM_OBJECTFILETRANSFORMER_H 10#define LLVM_DEBUGINFO_GSYM_OBJECTFILETRANSFORMER_H 11 12#include "llvm/Support/Error.h" 13 14namespace llvm { 15 16class raw_ostream; 17 18namespace object { 19class ObjectFile; 20} 21 22namespace gsym { 23 24class GsymCreator; 25 26class ObjectFileTransformer { 27public: 28 /// Extract any object file data that is needed by the GsymCreator. 29 /// 30 /// The extracted information includes the UUID of the binary and converting 31 /// all function symbols from any symbol tables into FunctionInfo objects. 32 /// 33 /// \param Obj The object file that contains the DWARF debug info. 34 /// 35 /// \param Log The stream to log warnings and non fatal issues to. If NULL, 36 /// don't log. 37 /// 38 /// \param Gsym The GSYM creator to populate with the function information 39 /// from the debug info. 40 /// 41 /// \returns An error indicating any fatal issues that happen when parsing 42 /// the DWARF, or Error::success() if all goes well. 43 static llvm::Error convert(const object::ObjectFile &Obj, raw_ostream *Log, 44 GsymCreator &Gsym); 45}; 46 47} // namespace gsym 48} // namespace llvm 49 50#endif // LLVM_DEBUGINFO_GSYM_OBJECTFILETRANSFORMER_H 51