调试器的运行时检查器
DebugInspector
00 Remarks
这个类型提供了在程序暂停之后所需要用到的各种运行时状态的检查功能, 其内部的实现都是复用的解释器所已经具备的基础设施:
- 变量列表: 复用 Environment.GetSymbolsNames() 以及 Environment.FindSymbol()
- 调用堆栈: 复用 Environment.stackTrace
- 表达式求值: 复用 Program.BuildProgram() 的语法解析链路
01 Syntax
SMRUCC.Rsharp.Interpreter.DebugInspector
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| GetVariables | 1 | 列出目标环境之中的所有的变量符号 |
| GetCallStack | 1 | 获取得到从当前的位置一直到最顶层的调用堆栈信息 |
| Evaluate | 1 | 在指定的运行时环境之中对一个R#表达式进行求值 |
| FormatValue | 1 | 将一个运行时的对象值格式化为便于阅读的字符串形式 |
03 Members
GetVariables(Environment,
Boolean)列出目标环境之中的所有的变量符号
Parameters
| Name | Type | Description |
|---|---|---|
env | Environment | 目标运行时环境, 默认为当前所暂停的位置上的环境对象 |
inherits | Boolean | 是否同时列出定义于父环境之中的变量符号? |
GetCallStack(Environment)
获取得到从当前的位置一直到最顶层的调用堆栈信息
Parameters
| Name | Type | Description |
|---|---|---|
env | Environment | 目标运行时环境, 默认为当前所暂停的位置上的环境对象 |
Evaluate(
String, Environment)在指定的运行时环境之中对一个R#表达式进行求值
Remarks
请注意, 表达式的求值是在真实的运行时环境之上进行的, 所以类似于x = 1这样的赋值表达式是会对程序的运行状态 产生实际的副作用的
Parameters
| Name | Type | Description |
|---|---|---|
expression | String | 所需要进行求值的R#表达式的源代码 |
env | Environment | 目标运行时环境, 默认为当前所暂停的位置上的环境对象 |
Returns
表达式的求值结果. 当语法解析或者是求值的过程之中发生了错误的时候, 函数会返回一个 Message 类型的错误对象
FormatValue(
Object, Int32)将一个运行时的对象值格式化为便于阅读的字符串形式