aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/elfreader.h
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2012-06-04 17:23:16 +0200
committerhjk <qthjk@ovi.com>2012-06-05 11:23:47 +0200
commit1b1dbf1b8b6cda0c4e63ef08b56f09e8fb755afd (patch)
treeaca86af4fba3344722b47666f1886e410d1f0676 /src/libs/utils/elfreader.h
parenta452db5055a26fae6f70a4fe715a2f3a5fd690cc (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.h29
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;