forked from qt-creator/qt-creator
Windows compile fix for elfreader
Change-Id: Ie7c0d9d57cddc609fe621876cfc63e0c60b0fa39 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -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 §ion = m_headers.at(i);
|
const ElfHeader §ion = 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;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -5385,7 +5385,7 @@ void GdbEngine::checkForReleaseBuild()
|
|||||||
}
|
}
|
||||||
|
|
||||||
QSet<QByteArray> seen;
|
QSet<QByteArray> seen;
|
||||||
foreach (const ElfHeader §ion, sections) {
|
foreach (const ElfHeader §ion, 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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user