Debugger: Fix #12499.
DebugReportGenerator/UiUtils: - When traversing the value node graph, detection of the case of an address type with a compound child wasn't taking type modifiers into account, leading to it sometimes not traversing down to members when it should, and consequently not reporting those members in a debug report.
This commit is contained in:
@@ -750,8 +750,9 @@ DebugReportGenerator::_ResolveValueIfNeeded(ValueNode* node, StackFrame* frame,
|
|||||||
// since in the case of a pointer to a compound we hide
|
// since in the case of a pointer to a compound we hide
|
||||||
// the intervening compound, don't consider the hidden node
|
// the intervening compound, don't consider the hidden node
|
||||||
// a level for the purposes of depth traversal
|
// a level for the purposes of depth traversal
|
||||||
if (node->GetType()->Kind() == TYPE_ADDRESS
|
if (node->GetType()->ResolveRawType(false)->Kind() == TYPE_ADDRESS
|
||||||
&& child->GetType()->Kind() == TYPE_COMPOUND) {
|
&& child->GetType()->ResolveRawType(false)->Kind()
|
||||||
|
== TYPE_COMPOUND) {
|
||||||
_ResolveValueIfNeeded(child->Node(), frame, maxDepth);
|
_ResolveValueIfNeeded(child->Node(), frame, maxDepth);
|
||||||
} else
|
} else
|
||||||
_ResolveValueIfNeeded(child->Node(), frame, maxDepth - 1);
|
_ResolveValueIfNeeded(child->Node(), frame, maxDepth - 1);
|
||||||
|
|||||||
@@ -297,8 +297,9 @@ UiUtils::PrintValueNodeGraph(BString& _output, ValueNodeChild* child,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (node->CountChildren() == 1
|
if (node->CountChildren() == 1
|
||||||
&& node->GetType()->Kind() == TYPE_ADDRESS
|
&& node->GetType()->ResolveRawType(false)->Kind() == TYPE_ADDRESS
|
||||||
&& node->ChildAt(0)->GetType()->Kind() == TYPE_COMPOUND) {
|
&& node->ChildAt(0)->GetType()->ResolveRawType(false)->Kind()
|
||||||
|
== TYPE_COMPOUND) {
|
||||||
// for the case of a pointer to a compound type,
|
// for the case of a pointer to a compound type,
|
||||||
// we want to hide the intervening compound node and print
|
// we want to hide the intervening compound node and print
|
||||||
// the children directly.
|
// the children directly.
|
||||||
|
|||||||
Reference in New Issue
Block a user