![]() |
1
19
debuggerDisplay属性不是递归的。字符串中的基本上表示评估此表达式并以内联方式显示结果。内部结果的字符串的计算方式就像类型或成员的play中没有debuggerDisplay属性一样。这就是为什么你看到“foo”而不是“foo”。 原因是可靠性。拥有相互递归的debuggerDisplay属性标记太容易了。这将导致在计算内部表达式时发生堆栈溢出或无限循环。不递归地计算debuggerDisplay属性可以防止这种无限递归(尽管用户仍然可以在特定表达式中自己创建它)。 控制内部表达式显示方式的一种方法是重写.toString()方法。这将在计算内部表达式的显示字符串时进行计算。 |
![]() |
2
2
|
![]() |
3
1
你可以使用
您还可以使用这些实践: DebuggerDisplay attribute best practices |
![]() |
SRobertJames · 使用printf的gdb显示 1 年前 |
|
Subin · 在vscode中运行c时出错 1 年前 |
![]() |
Community wiki · 如何调试Python内存故障? 1 年前 |
![]() |
Kai · 有什么方法可以轻松优化VSCode中的锈迹? 2 年前 |
![]() |
Chris Brandon · 如何使节点在堆栈溢出时中断? 2 年前 |