debug正常release出錯(cuò) debug和release的區(qū)別?
debug和release的區(qū)別?1、debug與release的區(qū)別debug:debug版本包含調(diào)試信息,容量比release大很多,不進(jìn)行優(yōu)化(優(yōu)化會(huì)使調(diào)試復(fù)雜化,因?yàn)樵创a與生成指令的關(guān)系會(huì)更
debug和release的區(qū)別?
1、debug與release的區(qū)別
debug:debug版本包含調(diào)試信息,容量比release大很多,不進(jìn)行優(yōu)化(優(yōu)化會(huì)使調(diào)試復(fù)雜化,因?yàn)樵创a與生成指令的關(guān)系會(huì)更復(fù)雜),方便程序員調(diào)試。在調(diào)試模式下生成兩個(gè)文件。除此之外。Exe或。DLL文件中,還有一個(gè).Pdb文件,它記錄了代碼斷點(diǎn)等調(diào)試信息
release:發(fā)布版本,無(wú)源代碼調(diào)試,并在編譯過(guò)程中優(yōu)化應(yīng)用程序的速度,使程序在代碼大小和運(yùn)行速度上都達(dá)到最優(yōu)。(調(diào)試信息可以在單獨(dú)的pdb文件中生成)。調(diào)試和版本編譯的本質(zhì)區(qū)別在于,調(diào)試通常稱為調(diào)試版本。它包含調(diào)試信息,不做任何優(yōu)化,方便程序員調(diào)試程序。發(fā)布稱為發(fā)布版本。它經(jīng)常被優(yōu)化以使程序在代碼大小和運(yùn)行速度上達(dá)到最優(yōu),這樣用戶就可以很好地使用它。
Release版本和Debug版本的區(qū)別以及轉(zhuǎn)換?
兩者都可以包含調(diào)試信息。對(duì)于release,可以使用/Zi指示要生成調(diào)試信息。是否包含調(diào)試信息和程序是否優(yōu)化是兩個(gè)不同的概念,它們是相互獨(dú)立的。
Debug和Release有什么區(qū)別?
不要在發(fā)布模式下調(diào)試局部變量。由于發(fā)布模式的優(yōu)化,你的代碼和最終的組裝不是一一對(duì)應(yīng)的,所以源代碼的斷點(diǎn)意義不大。請(qǐng)用匯編的思想來(lái)調(diào)試。另外,如果您不了解匯編,我建議您不要在發(fā)行版下進(jìn)行調(diào)試。在調(diào)試模式下檢查代碼邏輯沒(méi)有問(wèn)題。如果調(diào)試編譯和發(fā)布編譯沒(méi)有問(wèn)題,請(qǐng)首先檢查代碼中是否存在由于調(diào)試和發(fā)布模式導(dǎo)致的與調(diào)試相關(guān)的宏的不同定義而導(dǎo)致的實(shí)際差異。例如,在assert語(yǔ)句中編寫實(shí)際的函數(shù)代碼,等等
debug可以調(diào)試程序,release不能調(diào)試程序,當(dāng)程序出現(xiàn)錯(cuò)誤時(shí),可以在debug模式下設(shè)置斷點(diǎn)來(lái)調(diào)試程序。當(dāng)程序的所有錯(cuò)誤都被解決后,程序就可以在發(fā)布模式下生成,然后就可以發(fā)布了。debug生成的程序包含調(diào)試信息,編譯器沒(méi)有經(jīng)過(guò)優(yōu)化,因此比release生成的程序要大得多。