2009-08-21 27 views

回答

24
  1. 你不會想這對建立一個調試,因爲它使單步執行代碼更難,因爲運行可能無法正確反映你所寫的內容(因爲一些線路將得到優化的實際代碼出)

  2. 它不是在默認情況下建立調試由於上述原因,應該在默認情況下釋放啓用構建

  3. 它執行優化,如動態內聯和刪除不需要的局部變量。可以在編譯時決定的任何類型的優化。

3

維基百科對compiler optimization,涵蓋很多基本的優化類型的文章。

你不想創建優化的調試版本。優化會影響代碼的可調試性 - 某些代碼行可能會被刪除,某些函數的不同部分或不同函數的代碼行可能合併在一起,局部變量可能會合並在一起等等。這意味着在調試當前行時,由於代碼被重新組織,檢查當前行可能會隨機跳轉,並且檢查局部變量會非常具有誤導性 - 當不再需要局部變量時,可能會重用局部變量,從而導致亂碼結果。