C Trace類與Debug類條件編譯的使用

2021-08-25 00:02:37 字數 1968 閱讀 1138

一.首先要明白debug與trace的區別:

1. debug.write

trace.write

有什麼不同?何時應該使用哪乙個?

debug

類提供一組幫助除錯**的方法和屬性。

trace

類提供一組幫助跟蹤**執行的方法和屬性,通俗的說就是為在不打斷程式的除錯或跟蹤下,用來記錄程式執行的過程。

debug

只在debug

狀態下會輸出,

trace

在release

下也會輸出,在

release

下debug

的內容會消失。

2. debug build

release build

的區別,是否會有明顯的速度變化?請說明理由。

首先以乙個**說明問題:專案

debug

release

條件編譯常數

debug;trace

trace

優化**

false

true

輸出路徑

bin/debug

bin/release

生成除錯資訊

true

false

debug

模式下生成的程式集為除錯版本,未經優化;在

bin/debug/

目錄中有兩個檔案,除了要生成的

.exe

或.dll

檔案外,還有個

.pdb

檔案,這個

.pdb

檔案中就記錄了**中的斷點等除錯資訊;

release

模式下不包含除錯資訊,並對**進行了優化,

/bin/release/

目錄下只有乙個

.exe

或.dll

檔案。在專案資料夾下除了

bin外,還有個

obj目錄。編譯是分模組編譯的,每個模組的編譯結果就儲存在了

obj目錄下。最後會合併為乙個

exe或者

dll檔案儲存到

bin之中。因為每次編譯都是增量編譯,也就是只重新編譯改變了的模組,所以這個

obj的目錄的作用就是儲存這些小塊的編譯結果,加快編譯速度。

二.trace and bug sample

using

system;

using

system.diagnostics

; //

引入debug

類所在命名空間

namespace

traceanddebug

}class

program

} }

三. c#

將trace,debug

資訊輸出到控制項上**)

主要實現方法,繼承tracelinster類,重寫構造引數,重寫write和writeline方法就可以了,具體**如下:

public

class

controltracelistener:tracelistener

public

override

void

write(

string

message));}

public

override

void

writeline(

string

message));}

private

void

sendstring(

string

msg)

}

C Trace類與Debug類條件編譯的使用

一.首先要明白debug與trace的區別 1.debug.write和trace.write有什麼不同?何時應該使用哪乙個?debug類提供一組幫助除錯 的方法和屬性。trace類提供一組幫助跟蹤 執行的方法和屬性,通俗的說就是為在不打斷程式的除錯或跟蹤下,用來記錄程式執行的過程。debug只在d...

類值類與類指標類

類值類 行為像值的 class a a const a a ps new string a.ps i a.i 每個類物件有自己的乙份資源拷貝 a operator const a rhs a private string ps int i 一種優化拷貝賦值運算子的方法 copy and swap c...

類與類關係

表現為繼承或實現關係 is a 具體形式為類與類之間的繼承關係,介面與介面之間的繼承關係,類對介面的實現關係。指的是乙個類 稱為子類 子介面 繼承另外的乙個類 稱為父類 父介面 的功能,並可以增加它自己的新功能的能力,uml中實現用三角形箭頭和實線表示 指的乙個類實現介面 可以是多個 的功能,uml...