Visual Studio में कमांड-लाइन मापदंडों के साथ डिबगिंग


512

मैं Visual Studio में C ++ कमांड-लाइन एप्लिकेशन विकसित कर रहा हूं और इसे कमांड-लाइन तर्कों के साथ डीबग करने की आवश्यकता है। फिलहाल मैं सिर्फ उत्पन्न तर्कों के साथ उत्पन्न EXE फ़ाइल (इस तरह program.exe -file.txt) की जरूरत है , लेकिन इस तरह मैं डिबग नहीं कर सकता। वहाँ कहीं मैं डिबगिंग के लिए तर्क निर्दिष्ट कर सकता हूँ?


जवाबों:


753

हां, यह परियोजना के गुण पृष्ठ के डिबगिंग अनुभाग में है।

2008 से विज़ुअल स्टूडियो में: प्रोजेक्ट पर राइट-क्लिक करें , प्रॉपर्टीज़ चुनें , डीबगिंग सेक्शन पर जाएँ - "कमांड आर्गुमेंट्स" के लिए एक बॉक्स है। (युक्ति: समाधान नहीं, बल्कि परियोजना)।


296
Stackoverflow केवल प्रयोग करने योग्य MS प्रलेखन है!
मार्टिन बेकेट

12
उससे सावधान रहें। यह वास्तविक प्रोजेक्ट फ़ाइल नहीं बदलेगा, लेकिन इसके बजाय vcxproj.user-file।
TheTrowser

नोट: यदि आपके पास एक समाधान में बहु परियोजना है, तो उस परियोजना पर राइट क्लिक करें जिसे आप चलाने के लिए भटकना चाहते हैं और "स्टार्टअप प्रोजेक्ट के रूप में सेट करें"।
लायन लाई

1
सटीक। लेकिन जाहिरा तौर पर VS2017 में इसे "डीबगिंग" नहीं, बल्कि "डीबग" कहा जाता है। हम शायद कभी नहीं जानते।
ओमरएल

3
सुनिश्चित करें कि आपके पास संपत्ति पृष्ठों के शीर्ष पर ड्रॉपडाउन में चयनित सही कॉन्फ़िगरेशन है, अर्थात वही कॉन्फ़िगरेशन जिसे आप चलाने का प्रयास कर रहे हैं।
स्टीव स्मिथ

55

विंडोज पर मोज़िला डिबगिंग पर Mozilla.org पूछे जाने वाले प्रश्न यहां ब्याज की है।

संक्षेप में, Visual Studio डीबगर को कमांड लाइन से एक प्रोग्राम पर लागू किया जा सकता है, जिससे कमांड लाइन के प्रोग्राम को लागू करते समय कमांड लाइन के तर्कों को निर्दिष्ट करने की अनुमति मिलती है, सीधे कमांड लाइन पर।

यह दृश्य स्टूडियो 8 या 9 (विजुअल स्टूडियो 2005 या विजुअल स्टूडियो 2008, क्रमशः) के लिए निम्न जैसा दिखता है:

  devenv / debugexe 'प्रोग्राम का नाम' 'प्रोग्राम तर्क'

विज़ुअल स्टूडियो डीबगर में प्रोग्राम शुरू करने के लिए एक खोजकर्ता कार्रवाई करना भी संभव है ।


17

भले ही आप Visual Studio के बाहर निष्पादन योग्य प्रारंभ करते हैं, फिर भी आप Visual Studio को अपने पहले से चल रहे निष्पादन योग्य से कनेक्ट करने के लिए "अटैच" कमांड का उपयोग कर सकते हैं। यह उपयोगी हो सकता है जैसे कि जब आपका एप्लिकेशन प्लग-इन के रूप में किसी अन्य एप्लिकेशन के भीतर चलाया जाता है।


हां, साथ संलग्न करें Ctrl+Alt+P(या "डीबग" पर क्लिक करें> "प्रक्रिया में संलग्न करें ...")। लेकिन यह वास्तव में ओपी प्रश्न का उत्तर नहीं देता है;)
T_D

7

माइक्रोसॉफ्ट विजुअल स्टूडियो अल्टिमा 2013।

आप बस DEBUG मेनू पर जा सकते हैं → मुख्य गुणकॉन्फ़िगरेशन गुणडिबगिंग और फिर आपको कमांड लाइन के तर्कों के लिए बॉक्स दिखाई देगा।

वास्तव में, आप सभी अलग-अलग कॉन्फ़िगरेशन के लिए एक ही इनपुट तर्क सेट कर सकते हैं और न केवल डिबगिंग के लिए।

कॉन्फ़िगरेशन के पुल डाउन मेनू से: सभी कॉन्फ़िगरेशन और इनपुट तर्क डालें (प्रत्येक तर्क को अंतरिक्ष द्वारा अलग किया गया)।

अब, आप हर बार इनपुट तर्कों को बदलने के बिना अपने कार्यक्रम को विभिन्न तरीकों से निष्पादित कर सकते हैं।


यह थोड़े एमएस वीएस 2015 में भी काम करता है। इससे पहले कि मैं "डिबग-> {प्रोजेक्टनेम} गुणों" की ओर जाता, मुझे "कॉन्फिडेंस मैनेजर" को डिफॉल्ट "डिबग" और "रिलीज" से युक्त ड्रॉपडाउन के माध्यम से खोलना पड़ा। एक विंडो पॉप अप हुई जहां मैं नए "कॉन्फ़िगरेशन" आइटम जोड़ने में सक्षम था। ये आइटम "डीबग -> {प्रोजेक्टनेम} गुण" में उपलब्ध हैं।
AMartinNo1

2

इससे कुछ लोगों को मदद मिल सकती है जिन्हें अभी भी समस्या है। मैं विजुअल स्टूडियो 2015 का उपयोग करता हूं और मैं केवल तर्क को पारित कर सकता हूं जब मैंने इसकी परिभाषा बदल दीargv

के बजाय

int main(int argc, char **argv){
}

मुझे इस्तेमाल करना था

int main(int argc, char *argv[]){
}

मुझे नहीं पता कि यह क्यों आवश्यक था, लेकिन यह काम करता है।


यह क्या है? सी ++ देशी? C ++ प्रबंधित (.NET)?
पीटर मोर्टेंसन

एक ही मुद्दा था लेकिन ऊपर वर्णित दोनों घोषणाओं से काम नहीं चला। समाधान x86 से x64 में प्लेटफ़ॉर्म बदल रहा था क्योंकि मैं 64 बिट मशीन पर काम कर रहा हूं।
hfrmobile

2

.NET कोर के साथ Visual Studio 2017 में कंसोल अनुप्रयोग के में निम्न कार्य करें:

समाधान विंडो में प्रोजेक्ट पर राइट क्लिक करें , "गुण", डीबग (बाईं ओर) का चयन करें, और "आवेदन तर्क" क्षेत्र में तर्क दर्ज करें।

ध्यान दें कि उन्हें अंतरिक्ष-पृथक होना चाहिए।


1

दृश्य स्टूडियो 2010 में, प्रोजेक्ट पर राइट क्लिक करें, गुण चुनें , बाएं फलक पर कॉन्फ़िगरेशन गुण अनुभाग पर क्लिक करें, फिर डीबगिंग पर क्लिक करें , फिर पर , फिर दाहिने फलक पर कमांड तर्कों के लिए एक बॉक्स है।

उस में कमांड लाइन तर्क दर्ज करें। तुम तैयार हो। अब डिबग करें और परिणाम देखें। यदि आप गुणों में बदलते हुए थक गए हैं तो अस्थायी रूप से सीधे कार्यक्रम में इनपुट दें।


1

विज़ुअल स्टूडियो की समाधान विंडो में प्रोजेक्ट पर राइट क्लिक करें , "डिबगिंग" (बाईं ओर) का चयन करें , और "कमांड तर्क" क्षेत्र में तर्क दर्ज करें :

यहां छवि विवरण दर्ज करें


1

वीएस 2015 और ऊपर के साथ, स्मार्ट कमांड लाइन तर्क विस्तार का उपयोग करें । यह प्लग-इन एक विंडो जोड़ता है जो आपको तर्क को चालू और बंद करने की अनुमति देता है:

स्मार्ट कमांड लाइन तर्क इंटरफ़ेस

अतिरिक्त रूप से JSON फ़ाइल में तर्कों को संग्रहीत करता है, जिससे आप उन्हें स्रोत नियंत्रण के लिए प्रतिबद्ध कर सकते हैं। यह सुनिश्चित करने के अलावा कि आपको हर बार सभी तर्कों में टाइप करने की ज़रूरत नहीं है, यह उपलब्ध विकल्पों की खोज के लिए अन्य डेवलपर्स के लिए आपके प्रलेखन के लिए एक उपयोगी पूरक के रूप में कार्य करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.