diff options
author | hjk <qtc-committer@nokia.com> | 2012-06-04 17:23:16 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2012-06-05 11:23:47 +0200 |
commit | 1b1dbf1b8b6cda0c4e63ef08b56f09e8fb755afd (patch) | |
tree | aca86af4fba3344722b47666f1886e410d1f0676 /src/libs/utils/elfreader.h | |
parent | a452db5055a26fae6f70a4fe715a2f3a5fd690cc (diff) |
debugger: make elfreader also report offset and size of sections
Change-Id: I8dd3d20ddc4652dc490d87558f46474f79300389
Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/libs/utils/elfreader.h')
-rw-r--r-- | src/libs/utils/elfreader.h | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/libs/utils/elfreader.h b/src/libs/utils/elfreader.h index 97449508f0e..02bf6884a4c 100644 --- a/src/libs/utils/elfreader.h +++ b/src/libs/utils/elfreader.h @@ -52,33 +52,34 @@ namespace Utils { -typedef quint16 qelfhalf_t; -typedef quint32 qelfword_t; -typedef quintptr qelfoff_t; -typedef quintptr qelfaddr_t; +class ElfSectionHeader; + +class QTCREATOR_UTILS_EXPORT ElfSection +{ +public: + QByteArray name; + quint32 index; + quint32 type; + quint64 offset; + quint64 size; +}; + +typedef QList<ElfSection> ElfSections; class QTCREATOR_UTILS_EXPORT ElfReader { public: explicit ElfReader(const QString &binary); - struct ElfSectionHeader - { - qelfword_t name; - qelfword_t type; - qelfoff_t offset; - qelfoff_t size; - }; - enum ElfEndian { ElfLittleEndian = 0, ElfBigEndian = 1 }; - QList<QByteArray> sectionNames(); + ElfSections sections(); QString errorString() const { return m_errorString; } private: enum Result { Ok, NotElf, Corrupt }; const char *parseSectionHeader(const char *s, ElfSectionHeader *sh); - Result parse(const char *dataStart, quint64 fdlen, QList<QByteArray> *sectionNames); + Result parse(const char *dataStart, quint64 fdlen, ElfSections *sections); QString m_binary; QString m_errorString; |