使用python为用C编写的源文件生成函数调用深度

时间:2013-04-26 11:45:52

标签: python-2.7

我必须找出是否在使用python编写的函数内部修改了变量列表。要浏览的源文件是用C编写的。在我的项目中有大约2000个文件和大约1000个变量。这个脚本的主要原因基本上是检查不同协处理器的中断处理之间的数据一致性。

e.g。

变量列表= [var_w,var_x,var_y,var_z]

        /*Module 1.c*/

           ISR ()

                {



                    var_x++;

                    fun_y();

                    fun_z();



                    }

/ *结束模块1 * /

/ * modul2.c * /

           fun_y() {var_y = 1;}

/ * module3.c * /

           fun_z() { fun_zz();}

           fun_zz() {var_z ++;}

/ * ** * ** * ** * ** * ** /

           ISR

               ->fun_y

               ->fun_z

                         ->fun_zz

               ->....

                       ->

                          .....

                               ..........

因此脚本的结果应该像var_x,var_y,var_z由ISR修改。

你能否建议我一个更好的方法呢?

使用python Yacc会有帮助吗?

感谢你。

最诚挚的问候

1 个答案:

答案 0 :(得分:0)

你运气不好。

从理论上讲,在一般情况下,决定程序/函数是否更改变量(即不运行程序)是undecidable problem。如果它是可判定的,则可以使用程序决定程序是否更改变量(通过缩减)来轻松解决暂停问题。

您可以想出一个部分解决方案,找到变量发生变化的部分。但听起来它并不值得付出努力。