mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-14 15:00:53 +02:00
CodeLoader: Expose base ELF loaded offset
Useful for gdb
This commit is contained in:
1 parent
2aa77e85de
commit
68f32d85c9
2 files changed
+10
No files matched your search
@@ -48,6 +48,8 @@ public:
|
||||
|
||||
using IRHandler = std::function<void(uint64_t Addr, FEXCore::IR::IREmitter *IR)>;
|
||||
virtual void AddIR(IRHandler Handler) {}
|
||||
|
||||
virtual uint64_t GetBaseOffset() const { return 0; }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -366,6 +366,9 @@ class ELFCodeLoader2 final : public FEXCore::CodeLoader {
|
||||
|
||||
if (auto elf = LoadElfFile(MainElf, &BrkBase, Mapper, Unmapper)) {
|
||||
LoadBase = *elf;
|
||||
if (MainElf.ehdr.e_type == ET_DYN) {
|
||||
BaseOffset = LoadBase;
|
||||
}
|
||||
} else {
|
||||
LogMan::Msg::EFmt("Failed to load elf file");
|
||||
return false;
|
||||
@@ -620,6 +623,10 @@ class ELFCodeLoader2 final : public FEXCore::CodeLoader {
|
||||
size = AuxTabSize;
|
||||
}
|
||||
|
||||
uint64_t GetBaseOffset() const override {
|
||||
return BaseOffset;
|
||||
}
|
||||
|
||||
bool Is64BitMode() {
|
||||
return MainElf.type == ::ELFLoader::ELFContainer::TYPE_X86_64;
|
||||
}
|
||||
@@ -643,5 +650,6 @@ class ELFCodeLoader2 final : public FEXCore::CodeLoader {
|
||||
uint64_t AuxTabBase, AuxTabSize;
|
||||
uint64_t ArgumentBackingSize{};
|
||||
uint64_t EnvironmentBackingSize{};
|
||||
uint64_t BaseOffset{};
|
||||
|
||||
};
|
||||
Reference in new issue
Block a user