2013-04-26 127 views
1

源文件,我必須找出一個變量列表是否修改使用python.The源文件瀏覽C語言編寫的函數內部是用C寫並有蟒蛇的函數調用深度大約2000個文件和我的項目中大約1000個變量。這個腳本的主要原因主要是檢查不同協處理器的中斷處理之間的數據一致性。生成使用C語言編寫的

例如

變量列表= [var_w,var_x,var_y,var_z]模塊1 */

/* modul2.c */

  fun_y() {var_y = 1;} 

 /*Module 1.c*/ 

      ISR() 

       { 



        var_x++; 

        fun_y(); 

        fun_z(); 



        } 

/*端/ * 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的?

感謝你。

以最好的問候

+0

你爲什麼要這麼做?爲什麼你必須在Python中完成它?你似乎在問一些與你真正想要的不同的東西。它看起來不像是解決實際問題的合理方法。 – 2013-04-26 11:50:15

+0

我想知道是否有一個由ISR使用腳本修改的變量。該腳本將用於許多項目變體。謝謝 – Biswal 2013-04-26 11:57:24

+0

你剛纔沒有提到。如果你需要他們,你需要提供更多的背景和理由。你應該解決問題。 – 2013-04-26 12:01:10

回答

0

你運氣不好。

從理論上說,在其一般的情況下,決定一個程序/功能是否改變的變量(即沒有運行程序)是一個undecidable problem。如果它是可確定的,那麼可以使用程序決定程序是否更改變量(通過減少)來輕鬆解決暫停問題。

您能想出一個部分解決方案,找到其中的變量得到改變案件一些。但它聽起來像是不值得的努力。

+0

是的,你是對的。但提議的腳本並不打算查明任何運行時間的消息。只需要檢查ISR和外部使用的變量。謝謝 !! – Biswal 2013-04-26 14:36:59

+0

請推薦! – Biswal 2013-04-29 11:53:30