在gcc中使用儀器功能標誌,您可以在每次執行某個功能之前和之後測試代碼以執行功能。 這些函數是__cyg_profile_func_enter和__cyg_profile_func_exit,帶有兩個參數,即當前函數的地址;輸入的第二個參數是呼叫站點的地址,並用於退出它返回的地址。如何使用__cyg_profile_func_exit獲取返回值?
有沒有辦法獲得儀表功能實際返回的值?
在gcc中使用儀器功能標誌,您可以在每次執行某個功能之前和之後測試代碼以執行功能。 這些函數是__cyg_profile_func_enter和__cyg_profile_func_exit,帶有兩個參數,即當前函數的地址;輸入的第二個參數是呼叫站點的地址,並用於退出它返回的地址。如何使用__cyg_profile_func_exit獲取返回值?
有沒有辦法獲得儀表功能實際返回的值?
據我所知(爲了得到返回值,我決不會引用我的)返回值,使用__cyg_profile_func_exit我們需要將我們的優化標誌設置爲-O0,iirc,它不適用於度因爲-O0將返回值存儲在ebx中,並且較高優化標記將返回值存儲在eax中;之後致電eip。因此,爲了避免ebx被儀表功能所殺,我們在進入功能時保存它,並在我們分開時恢復它。
我希望這會有所幫助,祝你好運。
這將取決於返回類型......我想知道我是否正確理解你的問題。 – AProgrammer 2009-08-20 18:51:57
你想檢索被檢測函數返回的值嗎?準確地說是 – philant 2009-08-20 19:35:02
。我儀器的功能,我想什麼它實際上返回 – LB40 2009-08-20 19:48:36