字体
关灯
   存书签 书架管理 返回目录
    第三十二章 长夜漫漫(第 2/3 页)

    在这种语言里,你声明一个函数fun,格式就是

    proc fun(arg){

    #body

    }

    它看似一个关键字;但tcl里一切都是字符串,因此这个proc实质上是个函数,它接受函数名、参数列表、函数体三个参数……

    叶新晨也是把系统的proc改名叫_sys_proc,自己写了个proc;这样当用户声明一个函数/过程时,他的声明将以字符串格式先传给他。

    这样子的话叶新晨就可以做一些修改,把一些逻辑插进用户编写的代码中,然后再把修改后的代码传给_sys_proc。

    通过这种方式,叶新晨就接管了tcl的一切;然后修改了它的异常/返回流程,识别出“用户未捕捉的异常”。

    毕竟叶新晨是记录了每个函数在某次被调用时、在调用链上所处的层级。尤其接近顶层尚未捕获就会影响到当前测试用例、当前测试套甚至引起整个程序过早退出,这些都是要记录的。

    现在,当程序出错时,如果通过异常处理程序解决了问题、允许程序继续执行了,那么叶新晨就不做任何动作。

    但如果没有处理异常、使得测试失败甚至程序退出,那么叶新晨就能在执行下一条语句之前把整个调用链打印出来——从函数调用关系到每个函数的局部变量内容、再到异常传递路径,巨细靡遗。

    这个设计相当于函数返回时会多执行几条语句,把局部变量等信息保存在内存中;只要程序不崩溃,那么这些信息就自动丢弃;而一旦程序要崩溃,它就会写到磁盘文件中——叶新晨自己搞了个日志滚动机制,专门记录最近十次崩溃信息,并不会无限侵占磁盘空间。

    通过这个东西,再付出微不可察的时间代价,叶新晨给所有tcl程序增加了core dump功能。

    这显然是个重大利好。

    -->>(第 2/3 页)(本章未完,请点击下一页继续阅读)
上一页 目录 下一页
最近更新 刚准备高考,离婚逆袭系统来了 华娱从男模开始 我在直播间窥探天机 重燃青葱时代 港片:你洪兴仔,慈善大王什么鬼 讨逆 盖世神医 舔狗反派只想苟,女主不按套路走! 牧者密续 那年花开1981 1987我的年代 修罗剑神 混沌天帝诀 1979黄金时代 大国军垦 至尊战王 巅峰学霸 女总裁的全能兵王 国潮1980 超级修真弃少
最多阅读 攻略病娇男配的正确方法 文物不好惹 洞房前还有遗言吗 小蘑菇 她是男主白月光 顶级诱捕公式 仵作惊华 太子打脸日常 撒娇 逃离疯人院 [无限] 我这糟心的重生 路从今夜白 重生香江 猫咪的玫瑰 完美无缺 入迷 金殿锁娇 我的极品老婆 不循(重生) 俗人回档