Windows compile fix for elfreader

Change-Id: Ie7c0d9d57cddc609fe621876cfc63e0c60b0fa39
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Joerg Bornemann
2012-06-06 15:30:39 +02:00
committed by hjk
parent 3e809de1cf
commit 0e1d7c6b14
3 changed files with 10 additions and 9 deletions

View File

@@ -122,7 +122,7 @@ ElfReader::ElfReader(const QString &binary)
ElfHeaders ElfReader::readHeaders() ElfHeaders ElfReader::readHeaders()
{ {
if (m_headers.isEmpty()) if (m_headers.headers.isEmpty())
readIt(); readIt();
return m_headers; return m_headers;
} }
@@ -271,7 +271,7 @@ ElfReader::Result ElfReader::readIt()
m_headers.symbolsType = PlainSymbols; m_headers.symbolsType = PlainSymbols;
else if (section.name == ".gnu_debuglink") else if (section.name == ".gnu_debuglink")
m_headers.symbolsType = SeparateSymbols; m_headers.symbolsType = SeparateSymbols;
m_headers.append(section); m_headers.headers.append(section);
s += e_shentsize; s += e_shentsize;
} }
@@ -281,7 +281,7 @@ ElfReader::Result ElfReader::readIt()
QByteArray ElfReader::readSection(const QByteArray &name) QByteArray ElfReader::readSection(const QByteArray &name)
{ {
QByteArray contents; QByteArray contents;
if (m_headers.isEmpty()) if (m_headers.headers.isEmpty())
readIt(); readIt();
int i = m_headers.indexOf(name); int i = m_headers.indexOf(name);
if (i == -1) if (i == -1)
@@ -291,7 +291,7 @@ QByteArray ElfReader::readSection(const QByteArray &name)
if (!mapper.map()) if (!mapper.map())
return contents; return contents;
const ElfHeader &section = m_headers.at(i); const ElfHeader &section = m_headers.headers.at(i);
contents = QByteArray((const char *)mapper.start + section.offset, section.size); contents = QByteArray((const char *)mapper.start + section.offset, section.size);
return contents; return contents;
@@ -299,8 +299,8 @@ QByteArray ElfReader::readSection(const QByteArray &name)
int ElfHeaders::indexOf(const QByteArray &name) const int ElfHeaders::indexOf(const QByteArray &name) const
{ {
for (int i = 0, n = size(); i != n; ++i) for (int i = 0, n = headers.size(); i != n; ++i)
if (at(i).name == name) if (headers.at(i).name == name)
return i; return i;
return -1; return -1;
} }

View File

@@ -73,7 +73,7 @@ public:
quint64 data; quint64 data;
}; };
class QTCREATOR_UTILS_EXPORT ElfHeaders : public QList<ElfHeader> class QTCREATOR_UTILS_EXPORT ElfHeaders
{ {
public: public:
ElfHeaders() : symbolsType(UnknownSymbols) {} ElfHeaders() : symbolsType(UnknownSymbols) {}
@@ -81,6 +81,7 @@ public:
public: public:
DebugSymbolsType symbolsType; DebugSymbolsType symbolsType;
QList<ElfHeader> headers;
}; };
class QTCREATOR_UTILS_EXPORT ElfReader class QTCREATOR_UTILS_EXPORT ElfReader

View File

@@ -5385,7 +5385,7 @@ void GdbEngine::checkForReleaseBuild()
} }
QSet<QByteArray> seen; QSet<QByteArray> seen;
foreach (const ElfHeader &section, sections) { foreach (const ElfHeader &section, sections.headers) {
msg.append(section.name); msg.append(section.name);
msg.append(' '); msg.append(' ');
if (interesting.contains(section.name)) if (interesting.contains(section.name))
@@ -5398,7 +5398,7 @@ void GdbEngine::checkForReleaseBuild()
return; return;
} }
if (sections.isEmpty()) { if (sections.headers.isEmpty()) {
showMessage(_("NO SECTION HEADERS FOUND. IS THIS AN EXECUTABLE?")); showMessage(_("NO SECTION HEADERS FOUND. IS THIS AN EXECUTABLE?"));
return; return;
} }