diff options
author | hjk <qtc-committer@nokia.com> | 2012-06-05 19:55:32 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2012-06-06 09:41:08 +0200 |
commit | 2d466528c95599004f8025be8936c35453cbcbd8 (patch) | |
tree | 004a12029baa8da8afdb0e079e839f3d4c350b5b /src/libs/utils/elfreader.h | |
parent | 291e23d0e1cefcdc5197f7333182f6fb87b52f38 (diff) |
debugger: rework core adapter
The name of the binary is now read using the elfreader instead
of attaching gdb twice.
Change-Id: I7a75bc64278c4f43e7085d2e479b53173602c966
Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/libs/utils/elfreader.h')
-rw-r--r-- | src/libs/utils/elfreader.h | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/libs/utils/elfreader.h b/src/libs/utils/elfreader.h index 21810222f4a..21378a7e267 100644 --- a/src/libs/utils/elfreader.h +++ b/src/libs/utils/elfreader.h @@ -53,9 +53,6 @@ namespace Utils { -class ElfSectionHeader; -class ElfSections; - enum DebugSymbolsType { UnknownSymbols, // Unknown. @@ -65,7 +62,7 @@ enum DebugSymbolsType FastSymbols // Dwarf index available. }; -class QTCREATOR_UTILS_EXPORT ElfSection +class QTCREATOR_UTILS_EXPORT ElfHeader { public: QByteArray name; @@ -73,35 +70,38 @@ public: quint32 type; quint64 offset; quint64 size; + quint64 data; +}; + +class QTCREATOR_UTILS_EXPORT ElfHeaders : public QList<ElfHeader> +{ +public: + ElfHeaders() : symbolsType(UnknownSymbols) {} + int indexOf(const QByteArray &name) const; + +public: + DebugSymbolsType symbolsType; }; class QTCREATOR_UTILS_EXPORT ElfReader { public: explicit ElfReader(const QString &binary); + enum Result { Ok, NotElf, Corrupt }; enum ElfEndian { ElfLittleEndian = 0, ElfBigEndian = 1 }; - ElfSections sections(); + ElfHeaders readHeaders(); + QByteArray readSection(const QByteArray §ionName); 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, ElfSections *sections); + friend class ElfMapper; + Result readIt(); QString m_binary; QString m_errorString; ElfEndian m_endian; -}; - -class QTCREATOR_UTILS_EXPORT ElfSections -{ -public: - ElfSections() : symbolsType(UnknownSymbols) {} - - QList<ElfSection> sections; - DebugSymbolsType symbolsType; + ElfHeaders m_headers; }; } // namespace Utils |