forked from OSchip/llvm-project
[llvm-xray] Store offset pointers in temporaries
DataExtractor::getU64 modifies the OffsetPtr which also pass to RelocateOrElse which breaks on Windows. This addresses the issue introduced in r349120. Differential Revision: https://reviews.llvm.org/D55689 llvm-svn: 349129
This commit is contained in:
parent
f03e8023b7
commit
27e2f2014a
llvm/lib/XRay
|
@ -137,8 +137,10 @@ loadObj(StringRef Filename, object::OwningBinary<object::ObjectFile> &ObjFile,
|
|||
Sleds.push_back({});
|
||||
auto &Entry = Sleds.back();
|
||||
uint32_t OffsetPtr = 0;
|
||||
Entry.Address = RelocateOrElse(OffsetPtr, Extractor.getU64(&OffsetPtr));
|
||||
Entry.Function = RelocateOrElse(OffsetPtr, Extractor.getU64(&OffsetPtr));
|
||||
uint32_t AddrPtr = OffsetPtr;
|
||||
Entry.Address = RelocateOrElse(AddrOff, Extractor.getU64(&OffsetPtr));
|
||||
uint32_t FuncPtr = OffsetPtr;
|
||||
Entry.Function = RelocateOrElse(FuncOff, Extractor.getU64(&OffsetPtr));
|
||||
auto Kind = Extractor.getU8(&OffsetPtr);
|
||||
static constexpr SledEntry::FunctionKinds Kinds[] = {
|
||||
SledEntry::FunctionKinds::ENTRY, SledEntry::FunctionKinds::EXIT,
|
||||
|
|
Loading…
Reference in New Issue