2016-12-27 52 views
1

在發佈模式下使用Visual Studio調試本機C++程序有什麼缺點?爲什麼我應該通過設置兩種不同的模式來打擾自己,而不僅僅是在釋放模式下進行簡單的調試?在發佈模式下調試的缺點

通過在釋放模式的調試,我將所有需要的配置後平均(生成調試信息,禁用優化和增量鏈接...)

換句話說,爲什麼我應該有一個調試模式下,我必須將我的項目鏈接到任何第三方的調試版本,而我可以簡單地將我的發佈模式更改爲「可調試版本的發佈模式」(假設我不想在調試我的應用程序時挖掘第三個庫)

回答

6

如果你a)生成調試信息和b)禁用優化,那麼這幾乎不是釋放模式。這是沒有啓用_DEBUG的調試模式。

有些人在純調試和發行版本之上定義了這樣的第三個構建配置,僅針對調試問題,有時僅在發佈時纔會彈出。

唉,在僅發佈版本上彈出的問題類型往往是由優化造成的,因此這種構建的用途有限。但如果它適合你,沒有什麼能阻止你使用它。

這只是_DEBUG應該會導致日誌中發出額外的信息,當然還有需要檢查的斷言,這兩種情況在正常情況下都是開發中不可缺少的。因此,將「調試」模式不要嚴格視爲「調試」,而應將其視爲「開發」模式。

擁有不同版本的目的是讓你不必一直瞎搞他們的配置。你只需配置你想要的版本,然後你忘記了它們。如果您爲了調試目的而修改發佈版本,那麼下次當您想要將新版本發送到戶外時,您將不得不撤消這些修改並重新構建新的「真正」發佈模式版本。你不想這樣做。

此外,第三方庫的_DEBUG模式可能會生成可能對您有用的調試日誌,但最重要的是,它可能還會執行額外的輸入參數檢查,這對於開發強大的軟件來說絕對是不可或缺的。因此,您不希望在不處於_DEBUG模式的第三方庫上進行開發。

+0

謝謝..我想告訴我爲什麼我應該有一個調試模式,我必須將我的項目鏈接到任何第三方的調試版本,而我可以簡單地將我的發佈模式更改爲「可調試版本的發佈模式「 –

+1

擁有不同版本的目的是讓您不必一直弄亂它們的配置。你只需配置你想要的版本,然後你忘記了它們。每當你想將新版本發送到戶外時,你都不會惹惱配置。 –

+0

此外,第三方庫的_DEBUG模式可能會生成日誌記錄,這些日誌文件可能對調試有用,也可能會執行額外的輸入參數檢查,這對於開發功能強大的軟件來說絕對是必不可少的,因此您不希望成爲在不處於_DEBUG模式的第三方庫上開發。 –

1

您錯過了調試運行時庫!這將檢查運行時的錯誤參數,這是一種可能導致發行版運行時出現無法解釋的崩潰的錯誤。

相關問題