aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/elfreader.h
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2012-06-05 19:55:32 +0200
committerhjk <qthjk@ovi.com>2012-06-06 09:41:08 +0200
commit2d466528c95599004f8025be8936c35453cbcbd8 (patch)
tree004a12029baa8da8afdb0e079e839f3d4c350b5b /src/libs/utils/elfreader.h
parent291e23d0e1cefcdc5197f7333182f6fb87b52f38 (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.h36
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 &sectionName);
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