自从我完成了LPC driver并投入实用这段时间以来,其最大的问题就是缺乏调试工具。这使得开发的时候调试很不方便,经常要手工增加printf,然后update object查看结果。当年这么开发还好,但是随着项目越来越复杂,问题也越来越多。
我本来打算针对VC这样的调试终端开发,让VC可以直接连上driver调试脚本。但是因为一直没有时间专心研读这方面的资料,所以这个工作迟迟没有开展。
前两天调试一个问题的时候,感觉工具带来的低效越发的明显。于是我先实现了动态设置陷阱的方法,利用这个功能,我可以方便的在任何一个脚本函数、外部函数上设置陷阱,并且实时取得当时执行的信息。虽然这个离终极解决方案还颇有距离,但是已经是大大的向前跨了一步了。
为了避免这个功能影响正常脚本执行,我为VM增加了一个debug模式的虚拟处理器。当有陷阱断点被设置时就切换到这个虚拟处理器,而当处于非调试状态时则使用常规的虚拟处理器。这样正常运行时就不会有任何性能上的损失。
随着这方面工作的完成,也许我该考虑先完成一个文字界面的调试工具了。
没有评论:
发表评论