Hata Ayıklama Sınıfı (C++/CLI)
Visual C++ uygulamasında kullanırken Debug , davranış hata ayıklama ve yayın derlemesi arasında değişmez.
Açıklamalar
için Trace davranışı Debug sınıfının davranışıyla aynıdır, ancak tanımlanan TRACE simgesine bağlıdır. Bu, bir yayın derlemesinde hata ayıklama davranışını önlemek için İzleme ile ilgili herhangi bir koda sahip olmanız gerektiği #ifdef
anlamına gelir.
Örnek: Her zaman çıkış deyimlerini yürütür
Tanım
Aşağıdaki örnek, /DDEBUG veya /DTRACE ile derlemenize bakılmaksızın her zaman çıkış deyimlerini yürütür.
Kod
// mcpp_debug_class.cpp
// compile with: /clr
#using <system.dll>
using namespace System::Diagnostics;
using namespace System;
int main() {
Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
Trace::AutoFlush = true;
Trace::Indent();
Trace::WriteLine( "Entering Main" );
Console::WriteLine( "Hello World." );
Trace::WriteLine( "Exiting Main" );
Trace::Unindent();
Debug::WriteLine("test");
}
Çıkış
Entering Main
Hello World.
Exiting Main
test
Örnek: #ifdef ve #endif yönergelerini kullanma
Tanım
Beklenen davranışı elde etmek için (bir yayın derlemesi için "test" çıkışı yazdırılmaz), ve #endif
yönergelerini #ifdef
kullanmanız gerekir. Bu düzeltmeyi göstermek için önceki kod örneği aşağıda değiştirilmiştir:
Kod
// mcpp_debug_class2.cpp
// compile with: /clr
#using <system.dll>
using namespace System::Diagnostics;
using namespace System;
int main() {
Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
Trace::AutoFlush = true;
Trace::Indent();
#ifdef TRACE // checks for a debug build
Trace::WriteLine( "Entering Main" );
Console::WriteLine( "Hello World." );
Trace::WriteLine( "Exiting Main" );
#endif
Trace::Unindent();
#ifdef DEBUG // checks for a debug build
Debug::WriteLine("test");
#endif //ends the conditional block
}
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin