Home > 博士五年 > 程序调出来了

程序调出来了

January 28th, 2010 nanyo Leave a comment Go to comments

查了一遍原来写的系统模拟代码,在代码和自动机上做了写必要的修改,没什么大的问题。但到模拟时,出现了一个exception,提示range error,好像是数值的范围问题,但没有指出在哪出的错。Uppaal没提供调试工具,我也不知错在哪,通查了一遍程序,没找到可能的出错点。这样耗着也不是办法,最后我新建了一个系统,将原系统一块一块分割出来,分别调试。最开始测试了Timer自动机,模拟timeout的,同时测试了消息的插入和删除,车辆位置关系确定,不变式判断等函数,并在自动机上调用,发现了一些问题,改过之后就能模拟了。Timer自动机和原系统的差不多是一样的,另外一个自动机则是后来新建的,没什么移植性可言。第二次尝试,只添加了三个自动机,一个Timer,一个Message,一个Trigger Vehicle,和相应的定义声明,在没有syntax error的情况下,进行模拟,出现了range error的exception,看来问题可能就在这三个自动机里。于是一个一个测试,先测Timer,这个Timer和我已经测过的就在自动机参数上有所区别,原来的Timer定义了一个整型值,并通过值传递的方式传给Timer,新加的Timer定义的是const整型值,用引用传递(带const),觉得应该不会有什么问题。但测试结果并非如此,提示有syntax error,依旧没指出在哪。为了简单,就把该整型值设成普通的,而不是const,及完全按测过的Timer自动机进行修改,进行模拟,可以了。于是把原系统的三个Timer自动机都改了一下,check syntax,没问题,试着simulation,居然成功了,再没有什么exception和syntax error。虽然比较偶然,但能出结果还是很高兴的,跑去跟老板说了一下。至今还没搞清楚为什么这些参数会导致那个exception,不过无所谓了,现在要的是结果,因为赶着做presentation。剩下的事就稍微好办些了,在原系统基础上进行修改,一是完善一下系统的功能,二是确定要要验证的东西,并在系统里实现。因为做presentation时,不能光给个系统实现,之所以做这个系统实现是有目的的,就是要验证我的系统在给定or假设的环境下能够work,所以我得prove。至于怎么prove,今天在给老板看模拟过程时讨论了一下,有了个idea,就先按着做吧。打算后周做Presentation,下周老板没空,这周把程序弄完,下周写report和ppt。

转载请注明出处: 利田小子[http://www.zhuhuang.com]

本文链接: http://www.zhuhuang.com/2010/01/program-debugging/

Categories: 博士五年 Tags: ,
  1. 强哥
    January 28th, 2010 at 08:12 | #1

    应该写的再具体点

  2. January 28th, 2010 at 10:29 | #2

    @强哥 哈哈,这写的貌似只有我自己看得懂。

  1. No trackbacks yet.