nuget server logo nuget api documents
↑

API Docs / REnv / ConsoleDebuggerFrontend

ConsoleDebuggerFrontend

Full name SMRUCC.Rsharp.Interpreter.ConsoleDebuggerFrontend Assembly REnv Members 10

调试器的控制台交互前端

00 Remarks

这个类型是 DebuggerContext 之上的一个默认的交互实现, 其通过订阅 DebuggerContext.OnBreakpointHit 事件的方式 来与调试器的内核进行交互. 因为调试器的内核之中并不包含任何的 控制台相关的代码, 所以GUI的宿主程序也可以采用完全相同的方式来 实现自己的调试界面

01 Syntax

SMRUCC.Rsharp.Interpreter.ConsoleDebuggerFrontend

02 Methods

NameOverloadsSummary
Attach 1 将当前的这个控制台前端挂载至调试器之上
Detach 1 将当前的这个控制台前端从调试器之上卸载掉
OnPause 1 断点命中的事件处理程序
processCommand 1 处理用户所输入的一条调试命令
printSource 1 展示当前所执行到的位置附近的源代码内容
processEvaluate 1 在当前的暂停点之上对用户所输入的表达式进行求值
processBreakCommand 1 处理断点的设置命令
processDeleteCommand 1 处理断点的删除命令
parseLocation 1 解析[文件名:]行号形式的源代码位置描述字符串

03 Fields

NameOverloadsSummary
sourceCache 1 用于展示当前所执行到的源代码行的源文件内容缓存

04 Members

method Attach #
Attach

将当前的这个控制台前端挂载至调试器之上

method Detach #
Detach

将当前的这个控制台前端从调试器之上卸载掉

method OnPause #
OnPause(DebugFrame)

断点命中的事件处理程序

Remarks

这个函数是在被暂停的执行线程之上被同步调用的, 在这个函数返回了之后, 执行线程会继续阻塞在 DebuggerContext.Pause() 之中, 直到用户所输入的命令调用了 DebuggerContext.Resume() 为止

method processCommand #
processCommand(String, DebugFrame)

处理用户所输入的一条调试命令

Returns

返回True表示程序应该继续执行下去(即需要退出命令循环), 返回False则表示应该继续等待用户输入下一条命令

method printSource #
printSource(DebugFrame, Int32)

展示当前所执行到的位置附近的源代码内容

method processEvaluate #
processEvaluate(String, DebugFrame)

在当前的暂停点之上对用户所输入的表达式进行求值

method processBreakCommand #
processBreakCommand(String, DebugFrame)

处理断点的设置命令

Remarks

命令的语法为break [文件名:]行号 [if 条件表达式], 当文件名被省略掉了的时候则默认使用当前所暂停的位置所处的文件

method processDeleteCommand #
processDeleteCommand(String, DebugFrame)

处理断点的删除命令

method parseLocation #
parseLocation(String, DebugFrame, String, Int32)

解析[文件名:]行号形式的源代码位置描述字符串

field sourceCache #
sourceCache

用于展示当前所执行到的源代码行的源文件内容缓存