2011-11-23 27 views
10
में काम करने के

निम्नलिखित सी # कार्यक्रम पर विचार करें नहीं लगता है दावा और असफल अनदेखा प्रतीत होता है। आउटपुट बस है:Debug.Assert मोनो

Hello World! 

मैंने स्टैक ओवरफ्लो पर अन्य संबंधित प्रश्नों की जांच की, लेकिन मुझे कोई समाधान नहीं मिला। विशेष रूप से समाधान Mono - Debug.Assert does not work में काम नहीं करता है। (अद्यतन: अद्यतन समाधान काम करता है, टिप्पणियों के नीचे देखें।)

मैं उबंटू 11.10 पर मोनो 2.10.5-1 का उपयोग करता हूं।

+1

डी ओह। मैंने माना कि मेरा जवाब काम करता था क्योंकि इसे स्वीकार किया गया था। मैंने जवाब अपडेट किया है और दोबारा चेक किया है कि यह इस बार काम करता है। संक्षेप में: 'मोनो' माइक्रोसॉफ्ट के .NET जैसे संवाद बॉक्स के साथ नहीं आता है; यह तब तक कुछ नहीं करता जब तक कि आप ट्रेस श्रोता सेट न करें। – dtb

+0

धन्यवाद। "निर्यात MONO_TRACE_LISTENER = Console.Out" का उपयोग करके, कंसोल विफलता कंसोल पर लिखी जाती है। –

उत्तर

8

सी # मोनो पर - लेख से http://ebsteblog.wordpress.com/2009/05/06/debugassert-and-mono/

अंश:

... अगर आप अपने अनुप्रयोग के लिए एक .config फ़ाइल बना सकते हैं और सही करने के लिए assertuienabled विशेषता निर्धारित करते हैं, आप के साथ के रूप में ही संवाद मिल नेट ... app.config फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.diagnostics> 
     <assert assertuienabled="true" /> 
    </system.diagnostics> 
</configuration> 

पुराना जवाब: सी ++ टिप्पणी अगर आप कमांड लाइन पर -define डीबग निर्दिष्ट नहीं किया है/संकलन विकल्प।

डिबग के लिए कोड की शुरुआत या

#define TRACE 

का पता लगाने के लिए कम से

#define DEBUG 

जोड़ें। http://lists.ximian.com/pipermail/mono-list/2006-December/033774.html

पी.एस:

समाधान यहाँ देखें मैं सी के साथ इस कोशिश की ++ नहीं सी #। यह सी # के लिए काम नहीं कर सकता है।

+0

धन्यवाद, लेकिन यह काम नहीं करता है। यहां तक ​​कि कोड की शुरुआत में DEBUG को परिभाषित किया गया है, जोर और असफलता को नजरअंदाज कर दिया जाता है। –

+1

इस बारे में क्या? http://ebsteblog.wordpress.com/2009/05/06/debugassert-and-mono/ –

+0

धन्यवाद, यह बहुत अच्छा काम करता है! मैंने उस वेबपृष्ठ पर वर्णित xml को Main.exe.config फ़ाइल में Main.exe के समान निर्देशिका में वर्णित किया है। उसके बाद, एक दावा विफलता एक संवाद बॉक्स उत्पन्न करता है। –

1

आप एक्सएमएल विन्यास का उपयोग कर सकते हैं, या आप रनटाइम पर एक निशान श्रोता जोड़कर अपने कार्यक्रम के नियंत्रण में रख सकते हैं:

var tl = new System.Diagnostics.ConsoleTraceListener(); 
System.Diagnostics.Debug.Listeners.Add (tl); 

यह आपको बाद इसे सक्षम करने में सक्षम होने का अतिरिक्त लाभ है कार्यक्रम शुरू हो गया है।