আমি কীভাবে ট্রাম্প / ইম্যাক্সের মাধ্যমে দূরবর্তীভাবে nrepl-ritz-jack-in কাজ করতে পারি


299

আমি যা চাই:

আমার কাছে একটি প্রত্যন্ত সাইটে ক্লোজার প্রোগ্রাম রয়েছে, আসুন এটি কল করুন mccarthy। আমি যা করতে চাই তা হল nrepl-ritzআমার ল্যাপটপ থেকে কোনওটির সাথে সংযোগ স্থাপন করা , পছন্দমত ব্যবহার করা nrepl-ritz-jack-in। একটি স্থানীয় প্রোগ্রামের জন্য জ্যাক ইন জ্যাকটি কাজ করে তবে এটি কোনও দূরবর্তী প্রোগ্রামের সাথে সংযুক্ত বলে মনে হচ্ছে না।

চেষ্টা ঘ

C-x C-f চালু /mccarthy:code/program/project.clj

(require 'nrepl-ritz)

M-x nrepl-ritz-jack-in

ফলাফল

ইমাকগুলি হ্যাং হয়ে দেখা দেয়। আমি যদি *nrepl-server*বাফারে যাই তবে আমি এটি দেখতে পাচ্ছি:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.flatland.drip.Main.invoke(Main.java:117)
    at org.flatland.drip.Main.start(Main.java:88)
    at org.flatland.drip.Main.main(Main.java:64)
Caused by: java.lang.AssertionError: Assert failed: project
    at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
    at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)

(এবং আরও অনেক লাইন, ...)

আমি dripআমার ল্যাপটপে ব্যবহার করছি , তবে চালু নেই mccarthy, সুতরাং এটি পরিষ্কারভাবে nrepl-ritz-jack-inসনাক্ত করতে পারছে না যে এটি একটি দূরবর্তী ফাইল। তবে নিয়মিত পুরানো nrepl-jack-inএই ক্ষেত্রে প্রত্যাশার মতো কাজ করবে।

চেষ্টা 2

আমিও একটি শুরু চেষ্টা nrepl-ritzব্যবহার leinউপর mccarthy:

mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874

আমার ল্যাপটপ থেকে আমি একটি পোর্ট ফরওয়ার্ড করি যাতে লোকেরা এতে 42874সংযোগ 42874করে mccarthy:

ssh -L 42874:localhost:42874 -N mccarthy

তারপরে, আমার স্থানীয় ইমাস থেকে:

(require 'nrepl-ritz)

M-x nrepl

হোস্ট: 127.0.0.1

পোর্ট: 42874

এটি আমাকে একটি সংযোগ দেয়:

; nREPL 0.1.7-preview
user> 

সুতরাং এটি পরীক্ষা করার জন্য, আমি রান

M-x nrepl-ritz-threads

এটি আমাকে থ্রেডের একটি দুর্দান্ত টেবিল দেয়।

M-x nrepl-ritz-break-on-exception

user> (/ 1 0)

ফলাফল

এটি স্তব্ধ হয়ে যায় তবে কখনও কখনও কিছু পুনঃসূচনা উপলভ্য একটি লুকানো ডিবাগিং বাফার দেখায়। যদি আমি এটি ব্যতিক্রমটিকে প্রোগ্রামে ফিরে যেতে বলি তবে এটি আরইপিএলে কখনও নিয়ন্ত্রণ দেয় না।

আমি প্রচুর অনুসন্ধান করেছি কিন্তু "নিশ্চিত হয়েছি যে আপনার পথে রয়েছে" (এবং আমি এটি উভয় মেশিনেই করেছি ...) এর চেয়ে বেশি নির্দিষ্ট কিছু পেতে সক্ষম হয়েছি না।


44
(/ 1 0)- এই ঝুলে আছে? সম্ভবত অনন্ত মূল্যায়নের চেষ্টা করছে ... ;-)
ফায়ারফ্রোফিডিল

8
Attempt 2আপনার স্থানীয় মেশিনে চেষ্টা করে দেখছেন , এটি ঠিক আছে? এটি lein ritz-replইম্যাক থেকে শুরু হচ্ছে এবং তারপরে সংযোগ স্থাপন করছে
গিলারমো উইঙ্কলার

4
হ্যাঁ, আমার লোকাল মেশিন থেকে শুরু করে ভাল কাজ করেছে। এটি কেবল দূরবর্তী সংযোগগুলির মধ্যে সমস্যা রয়েছে।
ম্যাটক্সবেকম্যান

5
আপনি যদি এই পদক্ষেপগুলি অনুসরণ করেন তবে এটি কাজ করা উচিত: devcenter.heroku.com/articles/debugging-clojure
আভাঞ্জ

6
ইতিমধ্যে উত্তর ভাই। stackoverflow.com/questions/22908315/… আপনার সন্ধান করা ঠিক এটি নয় তবে এটি সাহায্য করবে
প্রস্টোট্রন

উত্তর:


1

পূর্ববর্তী সিডার-জ্যাক-ইন থেকে যদি replটি এখনও চলমান থাকে তবে চলমান উদাহরণের সাথে সংযোগ স্থাপনের জন্য আপনাকে সিডারকম্যান্ড ব্যবহার করা উচিত, অথবা নতুনটি শুরু করার আগে পূর্ববর্তীটি থামানো উচিত

এখান থেকে ` ক্লোজার - সংযোগের সমস্যা পুনরায় সাইডার-জ্যাক-ইন চলছে

এটিও দেখুন https://devcenter.heroku.com/articles/debugging-clojure

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.