TAU G2程序本身的仿真功能很強,如果程序在目標機上運行時出現邏輯錯誤,你總是可以在TAU G2的仿真環境下模擬出這個錯誤并找到出錯的原因,一般不需要借助操作系統的C代碼調試工具。但是如果是在TAU G2中調用了C語言的函數,或者在環境函數中出現錯誤,問題就復雜了,因為TAU G2的仿真環境無法跟蹤這些C語言的代碼,你只能借助操作系統自身的調試功能了。
TAU G2生成的程序至少是2個線程:一個是主線程,就是main函數所在的線程,象環境函數中的xInitEnv和xInEnv都是在主線程中的,主線程設置斷點很容易,只要在啟動調試器后,使用Debug菜單中的Toggle Breakpoint(F9)就可以了,因為調試器默認就是把主線程當作當前線程的;另一個線程是UML代碼所在的線程,通常你不需要在生成的UML代碼中設置斷點,但是xOutEnv在這個線程中,而且如果在UML代碼中調用了C語言的函數,那么這些C語言的函數也在這個線程中,而在這個線程中如果還是用F9直接設置斷點就往往不會成功了,程序往往不會停下來而是繼續執行。
要想在xOutEnv或者自己編寫的C語言函數中設置斷點進行調試,可以使用Debug菜單中的Toggle Global Breakpoint(Shift F9)設置全局斷點。設置全局斷點后,當UML代碼所在的線程執行到斷點處,這個線程就會停下來,此時可以使用Debug菜單中的Attach功能,將當前線程由主線程變為UML線程,這樣就可以單步跟蹤調試了。UML線程在Attach對話框中通常是最后一個線程,默認情況下其名字應該為t1,但是有的時候線程名會顯示為亂碼。
posted on 2008-10-13 23:18
zealsoft 閱讀(1308)
評論(0) 編輯 收藏 引用 所屬分類:
UML 、
嵌入式開發