summaryrefslogtreecommitdiff
path: root/src/base/loader/ecoff_object.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/loader/ecoff_object.cc')
-rw-r--r--src/base/loader/ecoff_object.cc23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/base/loader/ecoff_object.cc b/src/base/loader/ecoff_object.cc
index 76b91dd66..56f9b35fc 100644
--- a/src/base/loader/ecoff_object.cc
+++ b/src/base/loader/ecoff_object.cc
@@ -73,21 +73,14 @@ EcoffObject::EcoffObject(const string &_filename, size_t _len, uint8_t *_data,
entry = aoutHdr->entry;
- text.base = aoutHdr->text_start;
- text.size = aoutHdr->tsize;
- text.data = fileData + ECOFF_TXTOFF(execHdr);
-
- data.base = aoutHdr->data_start;
- data.size = aoutHdr->dsize;
- data.data = fileData + ECOFF_DATOFF(execHdr);
-
- bss.base = aoutHdr->bss_start;
- bss.size = aoutHdr->bsize;
- bss.data = nullptr;
-
- DPRINTFR(Loader, "text: %#x %d\ndata: %#x %d\nbss: %#x %d\n",
- text.base, text.size, data.base, data.size,
- bss.base, bss.size);
+ addSegment("text", aoutHdr->text_start, fileData + ECOFF_TXTOFF(execHdr),
+ aoutHdr->tsize);
+ addSegment("data", aoutHdr->data_start, fileData + ECOFF_DATOFF(execHdr),
+ aoutHdr->dsize);
+ addSegment("bss", aoutHdr->bss_start, nullptr, aoutHdr->bsize);
+
+ for (auto &seg: segments)
+ DPRINTFR(Loader, "%s\n", *seg);
}
bool