[PATCH] D89049: [AIX][XCOFF] print out the traceback info
Stephen Peckham via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 5 12:25:18 PST 2023
stephenpeckham added inline comments.
================
Comment at: llvm/lib/Object/XCOFFObjectFile.cpp:1437
for (uint32_t I = 0; I < NumOfCtlAnchors && Cur; ++I)
- Disp.push_back(DE.getU32(Cur));
+ Disp.push_back(Is64BitObj ? DE.getU64(Cur) : DE.getU32(Cur));
if (Cur)
----------------
The controlled storage offsets are always 4 bytes, even for 64-bit binaries
================
Comment at: llvm/tools/llvm-objdump/XCOFFDump.cpp:271
+ OS << "\t ControlledStorageInfoDisp[" << I << "] = " << Disp[I];
+ // Print another 4 bytes for 64 bit.
+ if (Is64Bit) {
----------------
The controlled storage offsets are always 4 bytes, even for 64-bit binaries.
================
Comment at: llvm/tools/llvm-objdump/llvm-objdump.cpp:1736
+ (Symbols[SI - 1].XCOFFSymInfo.StorageMappingClass.value() ==
+ XCOFF::XMC_PR);
+
----------------
Programs have glink code which also has traceback tables, so you should check for XMC_GL as well as XMC_PR.
================
Comment at: llvm/tools/llvm-objdump/llvm-objdump.cpp:1793
+ dumpTracebackTable(Bytes.slice(Index),
+ SectionAddr + Index + VMAAdjustment, FOS, End,
+ *STI, &Obj);
----------------
Programs are usually linked with a non-zero .text origin, so I think you need SectionAddr + End instead of End.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D89049/new/
https://reviews.llvm.org/D89049
More information about the llvm-commits
mailing list