2013-04-07 42 views
2

我正在學習「編譯器」,我們致力於Flex編程。 我創建* .lex文件(使用任何編輯器),通過flex將它們轉換爲lex.yy.c,然後使用gcc編譯爲a.exe。有沒有Flex(「快速LEXical分析儀」)調試器?

在編輯器(如記事本/代碼塊/ ...)中編寫lex代碼不僅困難,因爲一切都只是黑色,但也沒有調試系統。 gcc編譯器確實告訴錯誤,但我正在尋找的是我可以逐行執行代碼(在運行時),並查看變量發生了什麼。就像Visual Studio中的命令F10一樣。

有沒有人知道適合這個的程序?非常感謝

+0

對於語法高亮使用例如記事本+ +。對於調試,您可以嘗試使用gdb,或者只是在Visual Studio中進行編譯。我不確定這樣調試生成的詞法分析器是否合理。 – 2013-04-07 16:49:41

回答

1

關於hightlighting,使用gedit(在Ubuntu和其他一些Linux的默認GUI編輯器變種),甚至vim將提供給你,你不必使用普通的記事本。

至於調試,是的,這就是所謂的GNU調試器(又名GDB),它允許您在編譯代碼後執行典型的調試工作,您可以逐行逐行檢查某些變量值。

在做之前,首先編譯程序與gcc標誌-g調試符號添加到符合的結果,然後運行gdb yourProgramName,這將運行GDB,你就可以使用某些命令,做力所能及的調試任務你要。

我曾經寫過a little guide to help people get started with GDB,它可能會有用。

+0

好吧,太棒了!該指南非常棒。但是缺少一件事:如果我的程序在開始時需要輸入文件,該怎麼辦?我有一個名爲input.txt的文件,它將成爲輸入。我如何讓程序收到它,然後開始調試? – 2013-04-07 20:08:00

+1

您可以在Windows上嘗試[xemacs](http://www.xemacs.org),它工作正常。在emacs或者xemacs中,你可以直接從編輯緩衝區調用可執行文件中的調試器,它會顯示你如何沿着源代碼行前進(我沒有用flex做過,但它應該可以工作), – vonbrand 2013-04-07 23:49:46

+2

如果你正在使用'vim',我建議你檢查一下這個http://clewn.sourceforge.net/,但有兩點:1 - 我寧願堅持一個編輯器和一個調試器分開,它讓我更加徹底地思考事情。 2-調試詞法分析器的編譯代碼通常不會是有益的 哦,如果你找到了答案有幫助,請點擊它旁邊的複選標記。 – Fingolfin 2013-04-08 02:17:05