调试专有递归脚本

时间:2016-07-20 07:00:04

标签: bash debugging recursion scripting cnc

因此,在阅读了这些问题hereand here之后,在没有解释我的情况的情况下,我对于如何提出这个问题并没有任何其他想法。

注意: 我对一般的专有平台非常陌生,来自Free / Open软件的背景。

基本上,我的内部专有运动控制平台正在运行一个程序,它使用带有宏的脚本在UI端的程序和运动控制器端的固件之间进行通信。所有涉及的软件的文档和开发都是由一家姊妹公司处理的,而且文档缺乏/不完整,我们得到了他们的支持,但他们很瘦,拥有自己的产品,距离我们2,700英里,并且无法在公司内部随时待命,我没有源/不允许拥有主应用程序和固件的来源,并且真的杀了它,我们的最后,只有真正的程序员离开了。我们独自使用这个脚本,掌握了新产品,这些产品都依赖于这个脚本在软件中运行良好。该脚本需要一个严肃,定期的错误检查解决方案;对于我们使用此运动控制器系统的每台已配置机器。

所以我要开始调试这个脚本。这就是这里发生的事情。

我试图编写一个模拟bash实现但是递归程度,从.ini文件中引入的数组,系统定义的命令集以及固件中脚本的解析;已经使这个bash调试实现变得困难,我不确定我是否可以在不破坏重要内容的情况下完全完成它。

我看了其他选项,比如ANTLR,这也有点让我头疼,但可能有效。

现在,控制器通过某种静态IPv4交叉以太网设置(Telnet?)进行通信,但是有一个RS-232串口,它将输出格式化的字符串,这些字符串是从一个' sout'命令。我的意图是修改脚本以输出尽可能多的格式化字符串和预定义的系统命令和变量,但我担心它不会给我全局。

脚本本身定义了全局,系统和局部变量和函数,(因为它在运动控制器端具有硬件限制),可以嵌套25个子程序。真正的问题似乎是脚本的递归方进入和退出这些函数,因为它们是从UI和其他函数调用的。什么都没有跳出来,但如果没有深入的文档,我只能看到这么多,并且几乎已经与另一位向姐妹公司提出问题的工程师一起学习这一切。

任何人都可以就如何继续我的努力给我一些建议吗?我知道这可能有很多要问,但我有点陷入困境,需要比我的技能更多的认知资源,咖啡允许。

感谢您的时间。

0 个答案:

没有答案