forked from qt-creator/qt-creator
debugger: special handling for char*
This commit is contained in:
@@ -166,7 +166,8 @@ void WatchData::setValue(const QString &value0)
|
||||
// "numchild" is sometimes lying
|
||||
//MODEL_DEBUG("\n\n\nPOINTER: " << type << value);
|
||||
if (isPointerType(type))
|
||||
setHasChildren(value != "0x0" && value != "<null>");
|
||||
setHasChildren(value != "0x0" && value != "<null>"
|
||||
&& !isCharPointerType(type));
|
||||
|
||||
// pointer type information is available in the 'type'
|
||||
// column. No need to duplicate it here.
|
||||
|
@@ -268,6 +268,13 @@ bool isPointerType(const QString &type)
|
||||
return type.endsWith(QLatin1Char('*')) || type.endsWith(QLatin1String("* const"));
|
||||
}
|
||||
|
||||
bool isCharPointerType(const QString &type)
|
||||
{
|
||||
return type == QLatin1String("char *")
|
||||
|| type == QLatin1String("const char *")
|
||||
|| type == QLatin1String("char const *");
|
||||
}
|
||||
|
||||
bool isAccessSpecifier(const QString &str)
|
||||
{
|
||||
static const QStringList items = QStringList()
|
||||
@@ -569,6 +576,8 @@ GuessChildrenResult guessChildren(const QString &type)
|
||||
{
|
||||
if (isIntOrFloatType(type))
|
||||
return HasNoChildren;
|
||||
if (isCharPointerType(type))
|
||||
return HasNoChildren;
|
||||
if (isPointerType(type))
|
||||
return HasChildren;
|
||||
if (type.endsWith(QLatin1String("QString")))
|
||||
|
@@ -70,6 +70,7 @@ bool hasLetterOrNumber(const QString &exp);
|
||||
bool hasSideEffects(const QString &exp);
|
||||
bool isKeyWord(const QString &exp);
|
||||
bool isPointerType(const QString &type);
|
||||
bool isCharPointerType(const QString &type);
|
||||
bool isAccessSpecifier(const QString &str);
|
||||
bool startsWithDigit(const QString &str);
|
||||
QString stripPointerType(QString type);
|
||||
|
Reference in New Issue
Block a user