खोज…


वाक्य - विन्यास

  • अगर अभिव्यक्ति पर स्थान पर फ़ाइल में dbstop

पैरामीटर

पैरामीटर विवरण
फ़ाइल .m फ़ाइल का नाम (एक्सटेंशन के बिना), उदाहरण के लिए fit । यह पैरामीटर (आवश्यक) है जब तक कि विशेष सशर्त ब्रेकपॉइंट सेट न करें जैसे कि dbstop if error या dbstop if naninf
स्थान लाइन नंबर जहां ब्रेकपॉइंट लगाया जाना चाहिए। यदि निर्दिष्ट लाइन में रन करने योग्य कोड नहीं है, तो ब्रेकप्वाइंट को निर्दिष्ट एक के बाद पहली वैध लाइन पर रखा जाएगा।
अभिव्यक्ति बूलियन मान का मूल्यांकन करने वाली कोई भी अभिव्यक्ति या संयोजन। उदाहरण: ind == 1 , nargin < 4 && isdir('Q:\')

ब्रेकपॉइंट के साथ काम करना

परिभाषा

सॉफ़्टवेयर डेवलपमेंट में, एक ब्रेकपॉइंट एक प्रोग्राम में जानबूझकर रोकना या रोकना है, डिबगिंग उद्देश्यों के लिए रखा गया है।

आम तौर पर, एक ब्रेकपॉइंट अपने निष्पादन के दौरान एक कार्यक्रम के बारे में ज्ञान प्राप्त करने का एक साधन है। रुकावट के दौरान, प्रोग्रामर परीक्षण वातावरण (सामान्य उद्देश्य रजिस्टर, मेमोरी, लॉग, फाइलें, आदि) का निरीक्षण करता है ताकि यह पता लगाया जा सके कि कार्यक्रम अपेक्षित रूप से कार्य कर रहा है या नहीं। व्यवहार में, एक ब्रेकपॉइंट में एक या एक से अधिक स्थितियां होती हैं जो यह निर्धारित करती हैं कि प्रोग्राम के निष्पादन को कब बाधित किया जाना चाहिए।

-Wikipedia

MATLAB में ब्रेकप्वाइंट

प्रेरणा

MATLAB में, जब निष्पादन एक ब्रेकपॉइंट पर रुकता है, तो वर्तमान कार्यक्षेत्र (उर्फ गुंजाइश ) या कॉलिंग कार्यस्थानों में से किसी में चर चर, निरीक्षण किया जा सकता है (और आमतौर पर संशोधित भी)।

ब्रेकप्वाइंट के प्रकार

MATLAB उपयोगकर्ताओं को .m फ़ाइलों में दो प्रकार के ब्रेकप्वाइंट लगाने की अनुमति देता है:

  • मानक (या " अप्रतिबंधित ") ब्रेकप्वाइंट (लाल रंग में दिखाया गया है) - जब भी चिह्नित रेखा तक पहुंच जाता है, तो निष्पादन को रोक दें।
  • "सशर्त" ब्रेकपॉइंट (पीले रंग में दिखाया गया है) - जब भी चिह्नित रेखा तक पहुंच जाता है, तो निष्पादन को रोक दें और ब्रेकपॉइंट में परिभाषित स्थिति का true मूल्यांकन किया जाता true

जीयूआई में विभिन्न ब्रेकपॉइंट प्रतीकों

ब्रेकपॉइंट लगाना

दोनों प्रकार के ब्रेकप्वाइंट कई तरीकों से बनाए जा सकते हैं:

  • MATLAB संपादक GUI का उपयोग करके, पंक्ति संख्या के बगल में क्षैतिज रेखा पर राइट क्लिक करके।

  • dbstop कमांड का उपयोग करना:

    % Create an unrestricted breakpoint:
    dbstop in file at location
    % Create a conditional breakpoint:
    dbstop in file at location if expression
    
    % Examples and special cases: 
    dbstop in fit at 99 % Standard unrestricted breakpoint.
    
    dbstop in fit at 99 if nargin==3 % Standard conditional breakpoint.
    
    dbstop if error % This special type of breakpoint is not limited to a specific file, and
                    % will trigger *whenever* an error is encountered in "debuggable" code.
    
    dbstop in file % This will create an unrestricted breakpoint on the first executable line
                   % of "file".
    
    dbstop if naninf % This special breakpoint will trigger whenever a computation result 
                     % contains either a NaN (indicates a division by 0) or an Inf
    
  • कीबोर्ड शॉर्टकट का उपयोग करना: विंडोज पर एक मानक ब्रेकपॉइंट बनाने के लिए डिफ़ॉल्ट कुंजी F12 है ; सशर्त breakpoints के लिए डिफ़ॉल्ट कुंजी सेट नहीं की जाती।

ब्रेकपॉइंट्स को अक्षम और पुनः सक्षम करना

एक विराम बिंदु को अस्थायी रूप से अनदेखा करने के लिए अक्षम करें: अक्षम विराम बिंदु निष्पादन को रोक नहीं देते हैं। ब्रेकपॉइंट को अक्षम करना कई तरीकों से किया जा सकता है:

  • लाल / पीले ब्रेकपॉइंट सर्कल पर राइट क्लिक करें> ब्रेकपॉइंट को अक्षम करें।
  • एक सशर्त (पीला) ब्रेकप्वाइंट पर बायाँ क्लिक करें।
  • संपादक टैब में> ब्रेकप्वाइंट> सक्षम \ अक्षम करें।

ब्रेकप्वाइंट को हटा रहा है

सभी विराम बिंदु तब तक फ़ाइल में बने रहते हैं, जब तक कि वे मैन्युअल रूप से या स्वचालित रूप से हटा नहीं दिए जाते। MATLAB सत्र (यानी कार्यक्रम को समाप्त करने) को समाप्त करने पर ब्रेकप्वाइंट स्वचालित रूप से साफ़ हो जाते हैं। ब्रेकपॉइंट्स को मैन्युअल रूप से साफ़ करना निम्नलिखित में से किसी एक तरीके से किया जाता है:

  • dbclear कमांड का उपयोग करना:

    dbclear all
    dbclear in file   
    dbclear in file at location    
    dbclear if condition
    
  • एक मानक ब्रेकपॉइंट आइकन, या एक अक्षम सशर्त ब्रेकपॉइंट आइकन पर क्लिक करना छोड़ दिया।

  • किसी भी ब्रेकप्वाइंट पर राइट क्लिक> ब्रेकपॉइंट को क्लियर करें।

  • संपादक टैब में> ब्रेकप्वाइंट> सभी साफ़ करें।

  • MATLAB के पूर्व R2015b संस्करणों में, कमांड clear का उपयोग करते हुए।

फिर से शुरू होने वाला निष्पादन

जब निष्पादन को ब्रेकपॉइंट पर रोक दिया जाता है, तो प्रोग्राम को निष्पादित करने के दो तरीके हैं:

  • वर्तमान लाइन निष्पादित करें और अगली पंक्ति से पहले फिर से रोकें।

    संपादक में F10 1 , कमांड विंडो में dbstep , रिबन में "चरण"> संपादक> DEBUG।

  • अगले ब्रेकपॉइंट तक निष्पादित करें (यदि अधिक ब्रेकप्वाइंट नहीं हैं, तो प्रोग्राम के अंत तक निष्पादन आगे बढ़ता है)।

    संपादक में F12 1 , कमांड विंडो में dbcont , Ribbon> Editor> DEBUG में "जारी रखें"।


1 - विंडोज पर डिफ़ॉल्ट।

MATLAB द्वारा लागू जावा कोड डीबग करना

अवलोकन

MATLAB निष्पादन के दौरान कहे जाने वाले जावा कक्षाओं को डिबग करने के लिए, दो चरणों को पूरा करना आवश्यक है:

  1. JVM डिबगिंग मोड में MATLAB चलाएँ।
  2. MATLAB प्रक्रिया में जावा डिबगर संलग्न करें।

जब MATLAB को JVM डिबगिंग मोड में शुरू किया जाता है, तो कमांड विंडो में निम्न संदेश दिखाई देता है:

JVM is being started with debugging enabled.
Use "jdb -connect com.sun.jdi.SocketAttach:port=4444" to attach debugger.

MATLAB अंत

खिड़कियाँ:

MATLAB निष्पादन योग्य ( matlab.exe ) के लिए एक शॉर्टकट बनाएं और नीचे दिखाए अनुसार अंत में -jdb ध्वज जोड़ें:

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

इस शॉर्टकट का उपयोग करते हुए MATLAB चलाने पर JVM डिबगिंग सक्षम हो जाएगी।

वैकल्पिक रूप से java.opts फ़ाइल बनाई / अपडेट की जा सकती है। यह फ़ाइल "matlab-root \ bin \ arch" में संग्रहीत है, जहाँ "matlab-root" MATLAB इंस्टॉलेशन डाइरेक्ट है और "arch" आर्किटेक्चर (जैसे "win32") है।

निम्नलिखित फ़ाइल में जोड़ा जाना चाहिए:

-Xdebug
-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n

डिबगर अंत

इंटेलीज आईडिया

इस डिबगर को संलग्न करने के लिए MATLAB द्वारा उजागर पोर्ट के साथ "रिमोट डिबगिंग" कॉन्फ़िगरेशन के निर्माण की आवश्यकता होती है:

चरण 1: डिबग कॉन्फ़िगरेशन बनाना

फिर डिबगर शुरू किया जाता है:

चरण 2: डिबगर शुरू करना

यदि सब कुछ उम्मीद के मुताबिक काम कर रहा है, तो निम्न संदेश कंसोल में दिखाई देगा:

जब सब काम कर रहे हों तब आउटपुट लॉग करें



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow