सरल-बिल्ड-टूल (sbt) और IntelliJ के साथ स्काला कोड को डीबग करना


120

IntelliJ के अंतर्निहित डीबगर का उपयोग करके sbt द्वारा प्रबंधित Scala कोड को डीबग करने का सबसे आसान तरीका क्या है? Sbt की Google कोड साइट से "RunningSbt" का प्रलेखन किसी परियोजना या परीक्षणों के लिए मुख्य वर्ग को चलाने के लिए आदेशों को सूचीबद्ध करता है, लेकिन डिबगिंग के लिए कोई आदेश नहीं लगता है।

अनुवर्ती प्रश्न: sbt के जेटी-रन कमांड का उपयोग करते समय इंटेलीज के डीबगर को जेट्टी में संलग्न करने का सबसे आसान तरीका क्या है?


6
कृपया भविष्य में प्रश्नों का मिश्रण न करें
hennr

जवाबों:


47

IntelliJ में साधारण डिबगिंग के लिए, आप सामान्य तरीके से एप्लिकेशन रन / डिबग कॉन्फ़िगरेशन का उपयोग कर सकते हैं, भले ही आप अपने कोड को संकलित करने के लिए sbt का उपयोग कर रहे हों।

जेट्टी में चल रहे अपने एप्लिकेशन से कनेक्ट करने के लिए, आपको एक दूरस्थ डीबग कॉन्फ़िगरेशन बनाने की आवश्यकता होगी। जब आप ऐसा करते हैं, तो इंटेलीजे आपको रिमोट जेवीएम चलाने के लिए कमांड लाइन तर्क का एक सेट देगा - कुछ ऐसा

-Xdebug -Xrunjdwp: परिवहन = dt_socket, सर्वर = y, निलंबित = n, पता = 5005

इन तर्कों के साथ sbt लॉन्च करें और फिर निष्पादित करें jetty-run। अंत में, IntelliJ में अपना दूरस्थ डीबग कॉन्फ़िगरेशन लॉन्च करें। यह धागा उपयोगी हो सकता है।


1
मेरे लिए हमेशा की तरह यह अच्छी तरह से काम नहीं करता है: stackoverflow.com/questions/16337745/...
Ses

आप यह कहाँ टाइप करते हैं? -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
Jwan622

@ Jwan622 उन तर्कों के साथ sbt लॉन्च करें (जैसे, कमांड लाइन से, कमांड लाइन तर्कों के रूप में आपूर्ति करना)। फिर jetty-runsbt प्रॉम्प्ट पर निष्पादित करें ।
आरोन नोवस्त्रुप

तो बस चला sbt -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005?
Jwan622

3
अधिकांश उपयोगकर्ताओं के लिए जो काम करना चाहिए, लेकिन यह इस बात पर निर्भर करता है कि आपके सिस्टम पर sbt कैसे सेटअप है। जैसा कि अन्य उत्तर में कहा गया है, आप बस चलाने में सक्षम हो सकते हैं sbt -jvm-debug 5005
एरोन नोवस्त्रुप

189

मैक, लिनक्स और विंडोज के लिए -jvm-debugआधिकारिक एसबीटी पैकेज में बहुत सुविधाजनक झंडा है । आप डिबग पोर्ट को निर्दिष्ट करने के लिए ध्वज का उपयोग कर सकते हैं:

sbt -jvm-debug 5005

कवर के तहत , यह एसबीटी के लिए जेवीएम को विशिष्ट क्रिया डिबगिंग झुकाव के साथ शुरू करता है:

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

अब आप अपने कोड को सामान्य रूप से चला सकते हैं, उदाहरण के लिए sbt runकमांड के साथ।

चल रहे कोड से कनेक्ट करने के लिए IntelliJ को कॉन्फ़िगर करना ...

अब आप IntelliJ को दूरस्थ डिबग कॉन्फ़िगरेशन का उपयोग करके अपनी चल रही प्रक्रिया से कनेक्ट करते हैं । ध्यान दें कि डरावने होते समय इस रूप में ऊपरी 3 फ़ील्ड, केवल आपके लिए बाहर से पाठ कॉपी करने के लिए हैं (वे ऊपर दिए गए क्रिया डिबगिंग झुकाव दे रहे हैं, जो -jvm-debugपहले से ही आपके लिए ध्यान रखता है) - एकमात्र कॉन्फ़िगरेशन आप बदल सकते हैं Settingsनीचे अनुभाग आधा में है:

IntelliJ में दूरस्थ डीबग कॉन्फ़िगरेशन


1
यह विंडोज पर काम नहीं करता है - किसी भी विचार को इस (घटिया) प्लेटफॉर्म पर समान कैसे करना है?
जावदबा २ '

यह मेरे द्वारा विंडोज के लिए उपयोग की जाने वाली लांचर स्क्रिप्ट है: github.com/sbt/sbt-launcher-package/blob/master/src/windows/sbt । मैं आपको यह पता लगाने के लिए प्रोत्साहित करूंगा कि -jvm-debugपैरामीटर को स्वीकार करने के लिए स्क्रिप्ट को कैसे संशोधित किया जाए , और इसे एक पुल अनुरोध के रूप में सबमिट करें - आप सभी को लाभान्वित करने का एक अच्छा मौका देते हैं जो खुद को एक ही मंच पर पाते हैं।
रॉबर्टो टेले

में देखा। विंडोज़ लॉन्च स्क्रिप्ट WAY आदिम बनाम लिनक्स है। अब नहीं कर सकते।
जवदाबा


3
IntelliJ में "sbt -jvm 5005" सम्मिलित करने के लिए यह जानना उपयोगी होगा
eddy147

39

मुझे इससे भी कुछ परेशानी थी, इसलिए अधिक विस्तृत होने के जोखिम पर, यहाँ मैंने क्या किया:

सेट अप

  1. Sbt जेट्टी-रन के लिए रन कॉन्फ़िगरेशन बनाएँ

    • रन> एडिट कॉन्फ़िगरेशन पर जाएं
    • [+] आइकन पर क्लिक करें और स्काला संकलन सर्वर चुनें
    • आपको जो भी नाम चाहिए, उसे दर्ज करें और "रन एसबीटी एक्शन" चेकबॉक्स पर क्लिक करें और एसबीटी एक्शन जेटी-रन से चुनें ... [...]
  2. दूरस्थ डीबगिंग के लिए डीबग कॉन्फ़िगरेशन बनाएँ

    • रन> एडिट कॉन्फ़िगरेशन पर जाएं
    • [+] आइकन पर क्लिक करें और रिमोट चुनें
    • आपको जो भी नाम चाहिए उसे दर्ज करें और लाइन कॉपी करें -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005(सुनिश्चित करें कि वास्तव में कॉन्फ़िगरेशन बनाने के लिए ठीक क्लिक करें)
  3. ऊपर vm विकल्प चलाने के लिए sbt प्लगइन सेट करें

    • फाइल> सेटिंग्स> एसबीटी पर जाएं
    • -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005VM पैरामीटर बॉक्स में, पहले से ही मौजूद लोगों के बाद लाइन पेस्ट करें

डिबगिंग

  1. इच्छानुसार ब्रेकपॉइंट सेट करें
  2. अपने द्वारा बनाए गए sbt जेट्टी-रन कॉन्फ़िगरेशन को चुनकर रन> रन या ग्रीन एरो पर क्लिक करके जेटी वेब सर्वर शुरू करें।
  3. दूरस्थ डिबगिंग को प्रारंभ करें जो आपके द्वारा बनाए गए दूरस्थ डीबगिंग कॉन्फ़िगरेशन को चुनकर और रन> डीबग का चयन करके या बग आइकन पर क्लिक करके

16
कॉन्फ़िगरेशन मेनू में कोई स्काला संकलन सर्वर नहीं है। तो क्या मुझे कुछ खास चाहिए?
अर्ने

ऐसा लगता है कि चरण 1 की आवश्यकता नहीं है, मैं क्या करता हूं sbt कमांड चलाया जाता है sbt -jvm-debug 5005 console, फिर intelllJ Idea में ब्रेकपॉइंट सेट करें, डिबग चलाएं।
पेंगफेई .X

@ Pengfei.X, sbt -jvm-debug 5005 consoleमेरे लिए काम नहीं किया, लेकिन sbt -jvm-debug 5005किया।
लुकाज़ सेज़रविंस्की

8

यह हर बार मेरे लिए काम करता है, और केवल एक चीज जिसे आपको स्थापित करने की आवश्यकता है वह है इंटेलीजे में रिमोट डिबगिंग; मैं इंटेलीजे में टर्मिनल से जेवीएम मापदंडों के साथ एसबीटी शुरू करता हूं:

sbt -J-Xdebug -J-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

उसके बाद मैं लोकलहोस्ट: 5005 पर रिमोट डिबगिंग शुरू कर सकता हूं


7

मैं यहां एक और उत्तर जोड़ रहा हूं, क्योंकि संबंधित समस्या को देखते हुए मुझे यह प्रश्न मिला: ब्रेकपॉइंट का उपयोग करके परीक्षण कक्षाओं को डीबग करना।

मैं ScalaTest का उपयोग कर रहा हूं, और मैं आमतौर पर sbt के 'टेस्ट-ओनली' कमांड का उपयोग करके एक सूट चलाता हूं। अब जब मैं इंटरैक्टिव डिबगर का उपयोग करना चाहता हूं, तो मैं निम्नलिखित कर सकता हूं:

एक नया रन / डेबग कॉन्फ़िगरेशन टाइप करें 'स्काटलैस्ट' बनाएं, मुख्य "टेस्ट क्लास:" नाम डालें, और "लॉन्च से पहले: एसबीटी एक्शन 'टेस्ट-कंपाइल' चुनें।" यही है, आप परीक्षण स्रोतों में अब ब्रेकपॉइंट रख सकते हैं, और इस कॉन्फ़िगरेशन को चला सकते हैं।


एक ही है, लेकिन अच्छी तरह से काम नहीं करता है: stackoverflow.com/questions/16337745/...
Ses

क्या आप जानते हैं कि टेस्ट क्लास के कई टेस्ट होने पर मैं केवल एक टेस्ट कैसे चला सकता हूं? क्या आप नीचे दिए गए प्रश्न stackoverflow.com/questions/54977741/…
मनु चड्ढा

7

इन उत्तरों में से कोई भी या प्रदान किए गए लिंक ने मेरे लिए काम नहीं किया, इसलिए एक बार यह पता लगाने के बाद, मुझे लगा कि मैं साझा करूँगा ...

पृष्ठभूमि की समझ सहित जब मैंने शुरू किया था ...

यह ज्यादातर अतिरिक्त स्पष्टीकरण के साथ यहां दिए गए निर्देशों पर आधारित है।

माय एनवायरनमेंट: स्काला 2.10.2, एसबीटी 0.13, और इंटेलीज 13.1

पृष्ठभूमि:

  • जो भी कारण के लिए, इंटेलीजे में स्काला को संकलित करने के लिए एसबीटी का उपयोग करना उस तरह से एकीकृत नहीं है, जो मावेन परियोजनाएं हैं (जो कि डिबगिंग को आसानी से अनुमति देती हैं)।
  • यह मेरी समझ से प्रकट होता है कि एसबीटी के साथ संकलन करते समय, आप एक अलग प्रक्रिया में संकलन कर रहे हैं, इसलिए, आपको दूरस्थ रूप से डीबगिंग की आवश्यकता है।

डीबगिंग क्या है?

  • डिबगिंग एक ऐसा मोड है जिसमें आप अपना जेवीएम या ऐप चला सकते हैं, जिससे आप कोड निष्पादन के प्रवाह को नियंत्रित कर सकते हैं।
  • आपके द्वारा उपयोग किया जाने वाला डिबगिंग टूल तब डिबगिंग इंजन को कमांड जारी कर सकता है जो इसे बताता है कि "कोड की अगली पंक्ति को निष्पादित करें फिर रोकें" या "निष्पादित करना जारी रखें" या "स्मृति में यहां संग्रहीत चर का मूल्य प्राप्त करें"।

रिमोट डीबगिंग क्या है?

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

ऊपर दिए गए लिंक को संदर्भित करते हुए, निम्नलिखित स्पष्टीकरण / संशोधन उपयोगी हैं:

  1. नेटवर्क सॉकेट को सेट करते समय उपयोग करने के लिए पोर्ट सहित JVM सेटिंग्स "सक्षम डिबगिंग" के साथ SBT लॉन्च करने के लिए IntelliJ सेटअप करें। (अपरिवर्तित) अपने इंटेलीज सेटिंग्स में नामित वीएम पैरामीटर जोड़ें।
  2. सुनिश्चित करें कि यहां आपका पोर्ट नंबर चरण 1 से आपकी जेवीएम सेटिंग्स से मेल खाता है।
  3. जब आप SBT लॉन्च करते हैं, तो आपको इसे SBT कंसोल प्लगइन (जिसे आपने चरण 1 में कॉन्फ़िगर किया गया है) से करने की आवश्यकता है। यदि आप IntelliJ (कमांडलाइन पर) के बाहर SBT चला रहे हैं, तो आपको चरण 1 से समान VM मापदंडों के साथ SBT लॉन्च करने की आवश्यकता होगी (मैंने ऐसा नहीं किया था; इसलिए कोई निर्देश नहीं)। इस कदम के बाद, एसबीटी अब चल रहा है (लेकिन आपका कोड अभी तक नहीं है) और रिमोट डिबगिंग के लिए जेवीएम सेटअप है।
  4. यह IntelliJ डिबगिंग टूल शुरू करता है, जो आपके द्वारा चरण 3 में शुरू किए गए JVM से जुड़ता है।
  5. अंत में, आप एसबीटी कंसोल में संकलन शुरू करते हैं। आप किसी भी संकलन कमांड के साथ कर सकते हैं, जिसमें एक निरंतर संकलन कमांड भी शामिल है। यदि लगातार पुन: संकलित किया जाता है, तो रीकैपाइल होगा, लेकिन नहीं जब कोड निष्पादन डीबगर द्वारा रोका जाता है।

4
लिंक टूट गया है।
एंड्रयू बकनेल

4

मैं Intellij का उपयोग करते हुए SBT के माध्यम से निर्मित एक स्प्रे-कैन / अक्का / स्काला ऐप के साथ विंडोज पर डिबगिंग के साथ भी संघर्ष कर रहा हूं। विभिन्न सुझावों के साथ मिलकर, मेरे लिए सबसे सरल दृष्टिकोण था:

  1. सुनिश्चित करें कि आपके पास अपने प्रोजेक्ट में sbt.Revolver है / plugsin.sbt फ़ाइल उदा

    addSbtPlugin ("io.spray"% "sbt-revolver"% "1.1.1)"

  2. आप में javaoptions सेट करें build.sbt फ़ाइल:

    javaOptions: = Seq ("- Xdebug", "-Xrunjdwp: transport = dt_socket, server = y, suspend = y, address = 5005")

विशेष रूप से सस्पेंड = y विकल्प का उपयोग करें। जब तक आप Intellij से एक दूरस्थ डीबगर कनेक्ट नहीं करते हैं, तब तक यह एप्लिकेशन रखेगा

  1. Intellij में रन / एडिट कॉन्फ़िगरेशन मेनू के माध्यम से डिबगर कॉन्फ़िगरेशन सेट करें। + बटन दबाएं, "रिमोट" विकल्प चुनें। सुनिश्चित करें कि प्रविष्टियाँ ऊपर दिए गए javaoptions से मेल खाती हैं, विशेष रूप से 5005 के पोर्ट एड्रेस से। कॉन्फिग को 'स्प्रे' जैसा नाम दें।

  2. अपने SBT कंसोल से री-स्टार्ट कमांड का उपयोग करें। आपको फीडबैक आउटपुट में 5005 पोर्ट एड्रेस देखना चाहिए।

  3. Intellij में अपने ब्रेकप्वाइंट सेट करें।

  4. Intellij से, Run \ Debug 'Spray' चुनें। यह स्प्रे-कैन वेब सर्वर से कनेक्ट होना चाहिए। आपको डिबग विंडो में बहुत सारे थ्रेड देखने में सक्षम होना चाहिए।

  5. सावधान रहें कि स्प्रे में कुछ निर्देश प्राप्त होते हैं जो स्टार्ट अप पर निष्पादित होते हैं, लेकिन वेबसाइट पर बार-बार कॉल करने पर नहीं।


इस उत्तर के लिए आपको आशीर्वाद! आकर्षण की तरह काम किया।
user2770362


3

Windows लोक के लायक क्या है, इसके लिए %SBT_HOME%\bin\sbt.batकोड की निम्नलिखित पंक्तियों को संपादित करें और खोजें:

:run

"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%sbt-launch.jar" xsbt.boot.Boot %*
if ERRORLEVEL 1 goto error
goto end

फिर उन्हें इस कोड से प्रतिस्थापित करें:

FOR %%a IN (%*) DO (
  if "%%a" == "-jvm-debug" (
    set JVM_DEBUG=true
    set /a JVM_DEBUG_PORT=5005 2>nul >nul
  ) else if "!JVM_DEBUG!" == "true" (
    set /a JVM_DEBUG_PORT=%%a 2>nul >nul
    if not "%%a" == "!JVM_DEBUG_PORT!" (
      set SBT_ARGS=!SBT_ARGS! %%a
    )
  ) else (
    set SBT_ARGS=!SBT_ARGS! %%a
  )
)

if defined JVM_DEBUG_PORT (
  set _JAVA_OPTS=!_JAVA_OPTS! -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=!JVM_DEBUG_PORT!
)

call :run %SBT_ARGS%

if ERRORLEVEL 1 goto error
goto end

:run
"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%sbt-launch.jar" xsbt.boot.Boot %*
goto :eof

-jvm-debugबैश स्क्रिप्ट लॉन्चर में देखे जाने पर मैं सबसे अच्छा व्यवहार कर सकता हूं

एनबी। मुझे नहीं लगता कि %SBT_HOME%वास्तव में इस स्क्रिप्ट के बाहर मौजूद है, जब तक कि आप स्पष्ट रूप से आप के वातावरण में नहीं बने हैं, लेकिन वैसे भी आपको यह बात मिलती है: डी


1
पुल अनुरोध विलय
डैरेन बिशप

3

फ़ाइल-> सेटिंग्स-> अन्य सेटिंग्स-> SBT VM पैरामीटर्स -Xmx512M -XX: MaxPermSize = 256M -Xdebug -Xrunjdwp: परिवहन = dt_socket, सर्वर / y, सस्पेंड = एन, पता = 5005

रन-> कॉन्फ़िगरेशन प्रेस संपादित करें + और फिर दूरस्थ प्रेस लागू का चयन करें

अब SBT कंसोल में (intelliJ द्वारा शुरू किया गया) जब आप कमांड 'रन' निष्पादित करते हैं, तो आप "एड्रेस पर ट्रांसपोर्टेशन dt_socket के लिए सुनते हुए देखेंगे: 5005"

अब Run-> डीबग दबाएं। आपको नीचे डिबग मेनू सक्रिय दिखाई देगा। इसमें दो टैब डीबगर और कंसोल हैं।

अगली पंक्ति से अगली पंक्ति में F7 का उपयोग करें

मैंने n होने के लिए सस्पेंड चुना। यह y होने के साथ जब मैं रन कमांड चलाता था तो यह अटक जाता था



0

मुझे भी यही समस्या मिली, मैं इसे हल करना पसंद करता हूं। वैसे मैं Ubuntu 14.04 और IntelliJ 15 का उपयोग कर रहा हूं।

  1. सेटिंग में -> एसबीटी -> वीएम पैरामीटर्स टेक्स्ट बॉक्स में नीचे दी गई पंक्ति:

    -XX: MaxPermSize = 384M -Xdebug -Xrunjdwp: परिवहन = dt_socket, सर्वर = y, सस्पेंड = n, पता = 5005

  2. इंटेलीज में ओपन टर्मिनल और रन:

    sbt -jvm-debug 5005

    नोट: आपको टर्मिनल में इस लाइन को देखना चाहिए: "पते पर परिवहन dt_socket के लिए सुनना: 5005"

  3. विन्यास संपादित करें -> क्लिक + -> 'रिमोट' चुनें

    I. Give some name example: DebugMyModule
    
    II. All needed configurations will be set automatically, But you just verify. In Command line arguments should look like this "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005".
    
    III. In 'Search Sources in Module's Classpath' text box specify your module in which module your test cases are there.
    
    IV. put 127.0.0.1 host instead of 'localhost'. 'localhost' not working for me.
  4. सूची बॉक्स में DebugMyModule चुनें Edit Configurationsऔर डीबग पर क्लिक करें

    नोट: आपको डीबग व्यू को खोलकर देखना चाहिए और डिबग कंसोल में आपको "लक्ष्य वीएम से जुड़ा, पता:, '127.0.0.1:5005'परिवहन: 'सॉकेट' देखना चाहिए

  5. अपने टेस्टक्लास में कुछ परीक्षण मामलों में ब्रेकपॉइंट लगाएं।

  6. टर्मिनल पर आएं जहां आप " sbt -jvm-debug 5005" चलाते हैं और नीचे की तरह चलते हैं

    project <your-module-name>
    it:testOnly package.TestSpec

    उदाहरण के लिए: com.myproject.module.AddServiceTest [कल्पना]

  7. आप अपने परीक्षण मामले के विराम बिंदु में शुरू डिबग देख सकते हैं।


Ubuntu 16.04 और IntelliJ 2017.3 के साथ काम नहीं करता है, डिबगर संलग्न होता है लेकिन ब्रेकप्वाइंट को अनदेखा किया जाता है।
जोनाथन नेफेल्ड

testSuite ब्रेकपॉइंट पर नहीं रुक सकता है, हालांकि यदि ब्रेकपॉइंट एक मुख्य विधि में है, तो यह हो सकता है।
शेंग्शान झांग

0

AttachMe IntelliJ प्लगइन संभावित रूप से पोर्ट नंबर के साथ फ़ेल्ड होने के बिना डिबगर को संलग्न करने का तेज़ तरीका है:

AttachMe IntelliJ डिबगर को स्वचालित रूप से संलग्न करेगा भले ही आप टर्मिनल से अपना ऐप शुरू करें (या किसी अन्य तरीके से)। आपको Attach to processमैन्युअल रूप से कार्रवाई को ट्रिगर करने की आवश्यकता नहीं है ।

ब्लॉग पोस्ट और रीडमी में सेटअप निर्देश हैं, हालांकि मुझे इसे अपनी मशीन पर काम करने के लिए थोड़ा बदलना पड़ा

  1. installer.shआधिकारिक रेपो से स्क्रिप्ट डाउनलोड करें

    curl -o installer.shhttps://raw.githubusercontent.com/JetBrains/attachme/master/installer.sh
  2. इसे निष्पादन योग्य अनुमति दें chmod u+x installer.sh
  3. इसे लेकर चलें ./installer.sh
  4. इसके तहत एजेंट को स्थापित करना चाहिए /.config/attachme/agent.jarऔर ~/.attachmeफ़ाइल बनाना चाहिए
  5. ~/.attachmeशामिल करने के लिए संशोधित करें

    AM_JDWP_ARGS="transport=dt_socket,server=y,suspend=y,address=127.0.0.1:0"
    echo Using JDWP arguments ${AM_JDWP_ARGS}
    export JAVA_TOOL_OPTIONS="- javaagent:/Users/mario_galic/.config/attachme/agent.jar -agentlib:jdwp=${AM_JDWP_ARGS}"
    echo "AttachMe configured successfully"
  6. संबंधित Attachme प्लगइन स्थापित करें और पुनः आरंभ करें: IntelliJ | Preferences | Plugins

  7. Attachmeरन कॉन्फ़िगरेशन बनाएं :Run | Edit configurations... | Add new configuration | Attachme debugger registry | OK

इन वन-ऑफ शेंनिगन्स के बाद, हम डिबगर को अपने आप संलग्न कर सकते हैं

  1. Attachmeरन कॉन्फ़िगरेशन शुरू करें
  2. source ~/.attachme
  3. टर्मिनल से आवेदन शुरू करें, शायद, sbt "runMain example.Hello"
  4. डीबगर को स्वचालित रूप से संलग्न करना चाहिए और किसी भी ब्रेकपॉइंट पर रोकना चाहिए

-1

ऊपर रॉबर्टो टैली के जवाब के अनुसार, लेकिन विंडोज में हमें sbt स्थापित करने के बाद निम्नलिखित पर्यावरण चर भी निर्धारित करने की आवश्यकता है:

SBT_HOME
C: \ Program Files (x86) \ sbt \
[या जहाँ भी sbt स्थापित है]

SBT_OPTS
-Xdebug -runjdwp: परिवहन = dt_socket, सर्वर = y, निलंबित = n, पता = 5005

[आरटी के इंटेलीज उदाहरण के अनुसार]

पथ में जोड़ें:% SBT_HOME% \ बिन?% SBT_OPTS%

फिर प्रोजेक्ट फ़ोल्डर के भीतर कमांड लाइन में "sbt run -jvm -debug 5005" चलाएं।

यदि यह ठीक से काम कर रहा है, तो कमांड लाइन शुरू में एक पंक्ति को फिर से आउटपुट करेगी "पते पर परिवहन dt_socket के लिए सुनना: 5005"।

इंटेलीज में ब्रेकपॉइंट सेट करें।

डीबगर ब्रेकपॉइंट को ट्रिगर करने के लिए ब्राउज़र में ओपन वेबसाइट जैसे " http: // localhost: 9000 / "।

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