forked from qt-creator/qt-creator
debugger: use an enum for different encoding values
This commit is contained in:
@@ -587,16 +587,16 @@ QString quoteUnprintableLatin1(const QByteArray &ba)
|
|||||||
QString decodeData(const QByteArray &ba, int encoding)
|
QString decodeData(const QByteArray &ba, int encoding)
|
||||||
{
|
{
|
||||||
switch (encoding) {
|
switch (encoding) {
|
||||||
case 0: // unencoded 8 bit data
|
case Unencoded8Bit: // 0
|
||||||
return quoteUnprintableLatin1(ba);
|
return quoteUnprintableLatin1(ba);
|
||||||
case 1: { // base64 encoded 8 bit data, used for QByteArray
|
case Base64Encoded8BitWithQuotes: { // 1, used for QByteArray
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
QString rc = doubleQuote;
|
QString rc = doubleQuote;
|
||||||
rc += quoteUnprintableLatin1(QByteArray::fromBase64(ba));
|
rc += quoteUnprintableLatin1(QByteArray::fromBase64(ba));
|
||||||
rc += doubleQuote;
|
rc += doubleQuote;
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
case 2: { // base64 encoded 16 bit data, used for QString
|
case Base64Encoded16BitWithQuotes: { // 2, used for QString
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
const QByteArray decodedBa = QByteArray::fromBase64(ba);
|
const QByteArray decodedBa = QByteArray::fromBase64(ba);
|
||||||
QString rc = doubleQuote;
|
QString rc = doubleQuote;
|
||||||
@@ -605,7 +605,7 @@ QString decodeData(const QByteArray &ba, int encoding)
|
|||||||
rc += doubleQuote;
|
rc += doubleQuote;
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
case 3: { // base64 encoded 32 bit data
|
case Base64Encoded32BitWithQuotes: { // 3
|
||||||
const QByteArray decodedBa = QByteArray::fromBase64(ba);
|
const QByteArray decodedBa = QByteArray::fromBase64(ba);
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
QString rc = doubleQuote;
|
QString rc = doubleQuote;
|
||||||
@@ -614,41 +614,41 @@ QString decodeData(const QByteArray &ba, int encoding)
|
|||||||
rc += doubleQuote;
|
rc += doubleQuote;
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
case 4: { // base64 encoded 16 bit data, without quotes (see 2)
|
case Base64Encoded16Bit: { // 4, without quotes (see 2)
|
||||||
const QByteArray decodedBa = QByteArray::fromBase64(ba);
|
const QByteArray decodedBa = QByteArray::fromBase64(ba);
|
||||||
return QString::fromUtf16(reinterpret_cast<const ushort *>
|
return QString::fromUtf16(reinterpret_cast<const ushort *>
|
||||||
(decodedBa.data()), decodedBa.size() / 2);
|
(decodedBa.data()), decodedBa.size() / 2);
|
||||||
}
|
}
|
||||||
case 5: { // base64 encoded 8 bit data, without quotes (see 1)
|
case Base64Encoded8Bit: { // 5, without quotes (see 1)
|
||||||
return quoteUnprintableLatin1(QByteArray::fromBase64(ba));
|
return quoteUnprintableLatin1(QByteArray::fromBase64(ba));
|
||||||
}
|
}
|
||||||
case 6: { // %02x encoded 8 bit Latin1 data
|
case Hex2EncodedLatin1: { // 6, %02x encoded 8 bit Latin1 data
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
||||||
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
||||||
return doubleQuote + QString::fromLatin1(decodedBa) + doubleQuote;
|
return doubleQuote + QString::fromLatin1(decodedBa) + doubleQuote;
|
||||||
}
|
}
|
||||||
case 7: { // %04x encoded 16 bit data, Little Endian
|
case Hex4EncodedLittleEndian: { // 7, %04x encoded 16 bit data
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
||||||
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
||||||
return doubleQuote + QString::fromUtf16(reinterpret_cast<const ushort *>
|
return doubleQuote + QString::fromUtf16(reinterpret_cast<const ushort *>
|
||||||
(decodedBa.data()), decodedBa.size() / 2) + doubleQuote;
|
(decodedBa.data()), decodedBa.size() / 2) + doubleQuote;
|
||||||
}
|
}
|
||||||
case 8: { // %08x encoded 32 bit data, Little Endian
|
case Hex8EncodedLittleEndian: { // 8, %08x encoded 32 bit data
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
||||||
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
||||||
return doubleQuote + QString::fromUcs4(reinterpret_cast<const uint *>
|
return doubleQuote + QString::fromUcs4(reinterpret_cast<const uint *>
|
||||||
(decodedBa.data()), decodedBa.size() / 4) + doubleQuote;
|
(decodedBa.data()), decodedBa.size() / 4) + doubleQuote;
|
||||||
}
|
}
|
||||||
case 9: { // %02x encoded 8 bit Utf-8 data
|
case Hex2EncodedUtf8: { // 9, %02x encoded 8 bit Utf-8 data
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
||||||
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
||||||
return doubleQuote + QString::fromUtf8(decodedBa) + doubleQuote;
|
return doubleQuote + QString::fromUtf8(decodedBa) + doubleQuote;
|
||||||
}
|
}
|
||||||
case 10: { // %08x encoded 32 bit data, Big Endian
|
case Hex8EncodedBigEndian: { // 10, %08x encoded 32 bit data
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
QByteArray decodedBa = QByteArray::fromHex(ba);
|
QByteArray decodedBa = QByteArray::fromHex(ba);
|
||||||
for (int i = 0; i < decodedBa.size(); i += 4) {
|
for (int i = 0; i < decodedBa.size(); i += 4) {
|
||||||
@@ -663,7 +663,7 @@ QString decodeData(const QByteArray &ba, int encoding)
|
|||||||
return doubleQuote + QString::fromUcs4(reinterpret_cast<const uint *>
|
return doubleQuote + QString::fromUcs4(reinterpret_cast<const uint *>
|
||||||
(decodedBa.data()), decodedBa.size() / 4) + doubleQuote;
|
(decodedBa.data()), decodedBa.size() / 4) + doubleQuote;
|
||||||
}
|
}
|
||||||
case 11: { // %04x encoded 16 bit data, Big Endian
|
case Hex4EncodedBigEndian: { // 11, %04x encoded 16 bit data
|
||||||
const QChar doubleQuote(QLatin1Char('"'));
|
const QChar doubleQuote(QLatin1Char('"'));
|
||||||
QByteArray decodedBa = QByteArray::fromHex(ba);
|
QByteArray decodedBa = QByteArray::fromHex(ba);
|
||||||
for (int i = 0; i < decodedBa.size(); i += 2) {
|
for (int i = 0; i < decodedBa.size(); i += 2) {
|
||||||
@@ -675,7 +675,7 @@ QString decodeData(const QByteArray &ba, int encoding)
|
|||||||
return doubleQuote + QString::fromUtf16(reinterpret_cast<const ushort *>
|
return doubleQuote + QString::fromUtf16(reinterpret_cast<const ushort *>
|
||||||
(decodedBa.data()), decodedBa.size() / 2) + doubleQuote;
|
(decodedBa.data()), decodedBa.size() / 2) + doubleQuote;
|
||||||
}
|
}
|
||||||
case 12: { // %04x encoded 16 bit data, Little Endian, without quotes (see 7)
|
case Hex4EncodedLittleEndianWithoutQuotes: { // 12, see 7, without quotes
|
||||||
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
const QByteArray decodedBa = QByteArray::fromHex(ba);
|
||||||
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
//qDebug() << quoteUnprintableLatin1(decodedBa) << "\n\n";
|
||||||
return QString::fromUtf16(reinterpret_cast<const ushort *>
|
return QString::fromUtf16(reinterpret_cast<const ushort *>
|
||||||
|
@@ -60,6 +60,24 @@ namespace Internal {
|
|||||||
class WatchData;
|
class WatchData;
|
||||||
class GdbMi;
|
class GdbMi;
|
||||||
|
|
||||||
|
// Keep in sync with dumper.py
|
||||||
|
enum DebuggerEncoding
|
||||||
|
{
|
||||||
|
Unencoded8Bit = 0,
|
||||||
|
Base64Encoded8BitWithQuotes = 1,
|
||||||
|
Base64Encoded16BitWithQuotes = 2,
|
||||||
|
Base64Encoded32BitWithQuotes = 3,
|
||||||
|
Base64Encoded16Bit = 4,
|
||||||
|
Base64Encoded8Bit = 5,
|
||||||
|
Hex2EncodedLatin1 = 6,
|
||||||
|
Hex4EncodedLittleEndian = 7,
|
||||||
|
Hex8EncodedLittleEndian = 8,
|
||||||
|
Hex2EncodedUtf8 = 9,
|
||||||
|
Hex8EncodedBigEndian = 10,
|
||||||
|
Hex4EncodedBigEndian = 11,
|
||||||
|
Hex4EncodedLittleEndianWithoutQuotes = 12
|
||||||
|
};
|
||||||
|
|
||||||
bool isEditorDebuggable(Core::IEditor *editor);
|
bool isEditorDebuggable(Core::IEditor *editor);
|
||||||
QByteArray dotEscape(QByteArray str);
|
QByteArray dotEscape(QByteArray str);
|
||||||
QString currentTime();
|
QString currentTime();
|
||||||
@@ -104,10 +122,8 @@ QString decodeData(const QByteArray &baIn, int encoding);
|
|||||||
// of a function from the code model. Shadowed variables will
|
// of a function from the code model. Shadowed variables will
|
||||||
// be reported using the debugger naming conventions '<shadowed n>'
|
// be reported using the debugger naming conventions '<shadowed n>'
|
||||||
bool getUninitializedVariables(const CPlusPlus::Snapshot &snapshot,
|
bool getUninitializedVariables(const CPlusPlus::Snapshot &snapshot,
|
||||||
const QString &function,
|
const QString &function, const QString &file, int line,
|
||||||
const QString &file,
|
QStringList *uninitializedVariables);
|
||||||
int line,
|
|
||||||
QStringList *uninitializedVariables);
|
|
||||||
|
|
||||||
/* Attempt to put common code of the dumper handling into a helper
|
/* Attempt to put common code of the dumper handling into a helper
|
||||||
* class.
|
* class.
|
||||||
|
Reference in New Issue
Block a user