Clojure:
ডিবাগার ব্যবহার করা
কিভাবে:
Clojure জাভা ভার্চুয়াল মেশিন (JVM) এর উপর নির্ভর করে, তাই অনেক ডিবাগিং জাভা টূলস দিয়ে হয়। এমন একটি টুল হল CIDER
, Emacs-এ Clojure বিকাশের জন্য একটি শক্তিশালী প্যাকেজ, যার দৃঢ় ডিবাগিং ক্ষমতা রয়েছে। চলুন এতে ঝাঁপিয়ে পড়ি:
;; প্রথমে, Emacs ব্যবহার করে CIDER ব্যবহার করে একটি Clojure প্রকল্পে জ্যাক-ইন করুন
M-x cider-jack-in
;; একটি ব্রেকপয়েন্ট সেট করুন
;; আপনার Clojure কোডের যে লাইনটি আপনি পরীক্ষা করতে চান তা নেভিগেট করুন এবং
;; "C-c M-b" চাপুন অথবা নিম্নলিখিত কমান্ড চালান:
M-x cider-debug-defun-at-point
;; কোড চালানোর সময়, আপনি ব্রেকপয়েন্টে পৌঁছাবেন। CIDER আপনাকে উপস্থাপন করবে:
;; 1. n পরবর্তী যৌক্তিক পদক্ষেপে যেতে,
;; 2. c পরবর্তী ব্রেকপয়েন্ট পর্যন্ত নিরন্তর চালান হওয়া অব্যাহত রাখতে,
;; 3. q ডিবাগিং ছেড়ে দিতে।
;; ব্রেকপয়েন্টে স্থানীয় চরগুলি পরীক্ষা করুন
;; একটি ব্রেকপয়েন্টে থাকাকালীন, টাইপ করুন:
locals
;; আপনি মিনিবাফারে প্রিন্ট করা স্থানীয় চরগুলি এবং তাদের মানের একটি তালিকা দেখতে পাবেন।
স্যাম্পল আউটপুট দেখতে পারে:
{:x 10, :y 20, :result 200}
গভীর ডুব
ডিবাগার একটি টুল, যা কম্পিউটিং শব্দে প্রাচীন পাহাড়ের মত। “বাগ” শব্দটি একটি প্রকৃত পতঙ্গ যখন একটি মেশিনের একটি সার্কিটে শর্ট সৃষ্টি করে একটি ত্রুটি সৃষ্টির কারণে কম্পিউটিং-এর প্রাথমিক দিনগুলিতে তৈরি হয়েছিল।
যদিও CIDER
Emacs উৎসাহীদের জন্য দুর্দান্ত, Clojure ডিবাগিং-এর জন্য বিকল্প রয়েছে। উদাহরণস্বরূপ, IntelliJ এর সাথে Cursive প্লাগিন ব্যবহার করে একটি আরো GUI-চালিত ডিবাগিং অভিজ্ঞতা দিতে পারে। প্লাস, আপনি ডিবাগিং-এর সময় প্রক্রিয়া প্রবাহ নিয়ন্ত্রণ করতে Leiningen অথবা tools.deps ব্যবহার করতে পারেন।
অভ্যন্তরীণভাবে, এই ডিবাগারগুলি প Often অক্ষরে অক্ষরে প্রায়শই ম্যানিপুলেট করে, নির্দিষ্ট nREPL সেশনগুলিতে মূল্যায়ন সম্পাদন করে, এবং স্ট্যাক ট্রেস পরিদর্শন সরবরাহ করে। তারা জাভা ডিবাগিং ফ্রেমওয়ার্কের বিশাল ভাণ্ডারের মধ্যে অভিযোজিত হয়ে অধস্তন JVM-এর ক্ষমতাকে কাজে লাগাচ্ছে।