wh.value = CopyString(item.name);
else
wh.value = CopyString($"Invalid Enum Value");
- result = (bool)atoi(exp.constant);
+ result = true;
}
else if(wh.type && (wh.type.kind == charType || (wh.type.kind == classType && wh.type._class &&
wh.type._class.registered && !strcmp(wh.type._class.registered.fullName, "ecere::com::unichar"))) )
else
{
wh.value = CopyString(exp.constant);
- result = (bool)atoi(exp.constant);
+ result = true;
}
break;
default:
if(exp.hasAddress)
{
wh.value = PrintHexUInt64(exp.address);
- result = (bool)exp.address;
+ result = true;
}
else
{
case unionType:
case functionType:
case arrayType:
- return 'u';
+ // return 'u';
+ return 0;
case ellipsisType:
case enumType:
case methodType:
GetUInt64(exp1, &address);
size = ComputeTypeSize(exp.expType); //exp.expType.arrayType.size;
format = GetGdbFormatChar(exp.expType);
- evaluation = Debugger::ReadMemory(address, size, format, &evalError);
- if(evalError != dummyExp)
+ if(format)
{
- exp1.type = evalError;
- exp1.constant = PrintHexUInt64(address);
- expError = exp1;
- }
- else
- {
- if(evaluation)
+ evaluation = Debugger::ReadMemory(address, size, format, &evalError);
+ if(evalError != dummyExp)
{
- expNew = ParseExpressionString(evaluation);
- expNew.address = address;
- expNew.hasAddress = true;
- delete evaluation;
- expNew.destType = exp.expType;
- FreeType(exp.destType);
- FreeExpContents(exp);
- ProcessExpressionType(expNew);
- DebugComputeExpression(expNew);
- expNew.prev = prev;
- expNew.next = next;
- expNew.isConstant = true;
- *exp = *expNew;
+ exp1.type = evalError;
+ exp1.constant = PrintHexUInt64(address);
+ expError = exp1;
}
else
{
- exp1.type = unknownErrorExp;
- expError = exp1;
+ if(evaluation)
+ {
+ expNew = ParseExpressionString(evaluation);
+ expNew.address = address;
+ expNew.hasAddress = true;
+ delete evaluation;
+ expNew.destType = exp.expType;
+ FreeType(exp.destType);
+ FreeExpContents(exp);
+ ProcessExpressionType(expNew);
+ DebugComputeExpression(expNew);
+ expNew.prev = prev;
+ expNew.next = next;
+ expNew.isConstant = true;
+ *exp = *expNew;
+ }
+ else
+ {
+ exp1.type = unknownErrorExp;
+ expError = exp1;
+ }
}
}
+ else
+ {
+ exp1.type = unknownErrorExp; // Not supported yet, generate error to fallback to GDB printout
+ expError = exp1;
+ }
}
}
else