forked from qt-creator/qt-creator
debugger: special handling for Symbian TInt and TBool.
We know they don't have nested contents
This commit is contained in:
@@ -85,7 +85,7 @@ namespace Internal {
|
|||||||
using namespace Debugger::Constants;
|
using namespace Debugger::Constants;
|
||||||
|
|
||||||
//#define DEBUG_PENDING 1
|
//#define DEBUG_PENDING 1
|
||||||
//#define DEBUG_SUBITEM 1
|
#define DEBUG_SUBITEM 1
|
||||||
|
|
||||||
#if DEBUG_PENDING
|
#if DEBUG_PENDING
|
||||||
# define PENDING_DEBUG(s) qDebug() << s
|
# define PENDING_DEBUG(s) qDebug() << s
|
||||||
@@ -3767,6 +3767,16 @@ void GdbEngine::setLocals(const QList<GdbMi> &locals)
|
|||||||
// pass through the insertData() machinery
|
// pass through the insertData() machinery
|
||||||
if (isIntOrFloatType(data.type) || isPointerType(data.type))
|
if (isIntOrFloatType(data.type) || isPointerType(data.type))
|
||||||
setWatchDataValue(data, item.findChild("value"));
|
setWatchDataValue(data, item.findChild("value"));
|
||||||
|
if (isSymbianIntType(data.type)) {
|
||||||
|
setWatchDataValue(data, item.findChild("value"));
|
||||||
|
data.setHasChildren(false);
|
||||||
|
}
|
||||||
|
// Let's be a bit more bold:
|
||||||
|
//if (!hasDebuggingHelperForType(data.type)) {
|
||||||
|
// QByteArray value = item.findChild("value").data();
|
||||||
|
// if (!value.isEmpty() && value != "{...}")
|
||||||
|
// data.setValue(decodeData(value, 0));
|
||||||
|
//}
|
||||||
if (!qq->watchHandler()->isExpandedIName(data.iname))
|
if (!qq->watchHandler()->isExpandedIName(data.iname))
|
||||||
data.setChildrenUnneeded();
|
data.setChildrenUnneeded();
|
||||||
if (isPointerType(data.type) || data.name == __("this"))
|
if (isPointerType(data.type) || data.name == __("this"))
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace Debugger {
|
|||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
static const QString strNotInScope =
|
static const QString strNotInScope =
|
||||||
QCoreApplication::translate("Debugger::Internal::WatchData", "<not in scope>");
|
QCoreApplication::translate("Debugger::Internal::WatchData", "<not in scope>");
|
||||||
|
|
||||||
static int watcherCounter = 0;
|
static int watcherCounter = 0;
|
||||||
static int generationCounter = 0;
|
static int generationCounter = 0;
|
||||||
|
|||||||
@@ -339,6 +339,13 @@ bool isIntType(const QString &type)
|
|||||||
return types.contains(type);
|
return types.contains(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isSymbianIntType(const QString &type)
|
||||||
|
{
|
||||||
|
static const QStringList types = QStringList()
|
||||||
|
<< QLatin1String("TInt") << QLatin1String("TBool");
|
||||||
|
return types.contains(type);
|
||||||
|
}
|
||||||
|
|
||||||
bool isIntOrFloatType(const QString &type)
|
bool isIntOrFloatType(const QString &type)
|
||||||
{
|
{
|
||||||
static const QStringList types = QStringList()
|
static const QStringList types = QStringList()
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ bool extractTemplate(const QString &type, QString *tmplate, QString *inner);
|
|||||||
QString extractTypeFromPTypeOutput(const QString &str);
|
QString extractTypeFromPTypeOutput(const QString &str);
|
||||||
bool isIntOrFloatType(const QString &type);
|
bool isIntOrFloatType(const QString &type);
|
||||||
bool isIntType(const QString &type);
|
bool isIntType(const QString &type);
|
||||||
|
bool isSymbianIntType(const QString &type);
|
||||||
|
|
||||||
enum GuessChildrenResult { HasChildren, HasNoChildren, HasPossiblyChildren };
|
enum GuessChildrenResult { HasChildren, HasNoChildren, HasPossiblyChildren };
|
||||||
GuessChildrenResult guessChildren(const QString &type);
|
GuessChildrenResult guessChildren(const QString &type);
|
||||||
|
|||||||
Reference in New Issue
Block a user