mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 06:02:11 +02:00
Bug 293832 - [dsf-gdb] Ask gdb for variable value, even if it is a complex type
Currently, CDT does not ask GDB for the value of the variables it believes to be of complex types, such as structures. However, as described in the bug, it assumes that a typedefed pointer is a complex structure. Because of that, it displays a value of "{...}" for it instead of the pointer value. By asking GDB for the value of the variable even if it's of a complex type, CDT will always display the right thing for the value. This will cause a few more -var-evaluate-expression calls, but their number is still limited to what is visible in the variables view. So the impact should be negligible. Screenshot of before/after: http://i.imgur.com/Sx5ZPfO.png It is still impossible to edit the value, but this would be addressed in another patch. Change-Id: I92e6ead6351677e098a56d4af5bdb85fc61df080 Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
This commit is contained in:
parent
9f39b4828d
commit
cb16665cc7
1 changed files with 20 additions and 29 deletions
|
@ -1102,10 +1102,9 @@ public class MIVariableManager implements ICommandControl {
|
|||
return;
|
||||
}
|
||||
|
||||
// If the variable is a complex structure, there is no need to ask the back-end for a value,
|
||||
// we can give it the {...} ourselves
|
||||
// Unless we are dealing with an array, in which case, we want to get the address of it
|
||||
if (isComplex() && ! isDynamic()) {
|
||||
// If we are dealing with an array, in which case, we want to get the address of it.
|
||||
// When dealing with a complex value, we want to query the back-end to correctly
|
||||
// address the case of a typedefed pointer (see bug 293832).
|
||||
if (isArray()) {
|
||||
// Figure out the address
|
||||
IExpressionDMContext exprCxt = DMContexts.getAncestorOfType(dmc, IExpressionDMContext.class);
|
||||
|
@ -1126,14 +1125,6 @@ public class MIVariableManager implements ICommandControl {
|
|||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Other complex structure
|
||||
String complexValue = "{...}"; //$NON-NLS-1$
|
||||
setValue(dmc.getFormatID(), complexValue);
|
||||
rm.setData(new FormattedValueDMData(complexValue));
|
||||
rm.done();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue