ব্রেকপয়েন্টগুলি আপনার কোডটিতে সংকলকটি কীভাবে চলে তা দেখার দুর্দান্ত উপায়। এখন আমার প্রশ্ন হ'ল আপনি যখন নিজের কোডটি ডিবাগ করবেন তখন ব্রেকপয়েন্ট ব্যবহার করার কি সম্ভাবনা আছে?
ব্রেকপয়েন্টগুলি আপনার কোডটিতে সংকলকটি কীভাবে চলে তা দেখার দুর্দান্ত উপায়। এখন আমার প্রশ্ন হ'ল আপনি যখন নিজের কোডটি ডিবাগ করবেন তখন ব্রেকপয়েন্ট ব্যবহার করার কি সম্ভাবনা আছে?
উত্তর:
মাজেঙ্কোর উত্তরে উল্লিখিত হিসাবে, আরডুইনো আইডিই কোনও ব্রেকপয়েন্ট মেকানিজম সরবরাহ করে না তবে আটমেল স্টুডিও ব্রেকপয়েন্টগুলিকে সমর্থন করে [[*]
তবে, আপনার যদি একটি স্যুইচ এবং একটি এলইডি থাকে, আপনি আপনার প্রোগ্রামের অগ্রগতি এমনভাবে ট্র্যাক করতে পারেন যা ব্রেকপয়েন্টগুলির কিছু সুবিধা দেয়। আপনি একটি সাবরুটিন যুক্ত করবেন, বলুন BPReport()
যে সিরিয়াল আউটপুট বা একটি এলসিডি মাধ্যমে সমালোচনামূলক ভেরিয়েবলের মানগুলি রিপোর্ট করে, তারপরে এলইডি আলোকিত করে এবং স্যুইচটি চাপানো এবং প্রকাশ না হওয়া পর্যন্ত অপেক্ষা করে অপেক্ষা করা হয় না ounce আপনার BPReport()
রুটিনকে যেকোনো জায়গায় কল করুন আপনি নিঃশর্ত ব্রেকপয়েন্ট চাই। শর্তাধীন ব্রেকপয়েন্টগুলির জন্য, আপনার একটি রুটিন থাকতে পারে BPReportIf(cond)
যা কল BPReport()
যদি cond
সত্য হয়। আপনি যদি সিরিয়ালের মাধ্যমে আউটপুট দিতে না চান তবে আপনি বেশ কয়েকটি এলইডি বা একটি এলসিডি ব্যবহার করতে পারেন এবং আপনি যদি বহিরাগত বিরতি নিয়ন্ত্রণ চান তবে আপনি কয়েকটি স্যুইচ ব্যবহার করতে পারেন (উদাহরণস্বরূপ, cond
অতিরিক্ত সুইচের কোনওটির পরীক্ষা হতে পারে)।
[*] কিছু হার্ডওয়্যার ডিবাগারগুলি ডাউনলোড কোডগুলিকে সংশোধন করে প্রতিবার ব্রেকপয়েন্টগুলি যুক্ত করা, পরিবর্তন করা বা অপসারণ করা হয়। এই ব্যবহারটি ফ্ল্যাশ মেমরিটিকে কেবল কখনও কখনও ডাউনলোড করার চেয়ে বেশি দ্রুত পরিধান করবে। যদি এই জাতীয় ডিবাগিংয়ের জন্য কোনও চিপ ভারীভাবে ব্যবহৃত হয়, তবে কোনও চিপ কোনও উত্পাদন সিস্টেমে ব্যবহার করবেন না।
যদিও মাজেঙ্কো তার উত্তরটি সঠিক, সেখানে আরও কিছু বিকল্প রয়েছে।
আসল হার্ডওয়্যার ডিবাগিং হিসাবে মাজেঙ্কো বলেছে আমি বলতে চাই:
সম্পূর্ণ ভিন্ন বিভাগ থেকে অন্য একটি ডিবাগিং বিকল্পটি আপনার কোডটি এমনভাবে সাজানো হয় যাতে সিদ্ধান্তের যুক্তি (হার্ডওয়্যার স্বতন্ত্র) এবং ক্রিয়া (হার্ডওয়্যার নির্ভর) সম্পূর্ণ আলাদা হয়।
তারপরে আপনার স্কেচটিকে স্থানীয় প্রোগ্রাম হিসাবে সংকলন করুন এবং আপনার স্থানীয় মেশিনে "সিদ্ধান্ত যুক্তি" ডিবাগ করুন। এই পদ্ধতিটি "হার্ডওয়্যার ডিবাগিং" করার অনুমতি দেয় না। এই পদ্ধতিটি ইউনিট পরীক্ষা সক্ষম করে।
মনে রাখবেন যে আপনার স্থানীয় মেশিনটি সম্ভবত একটি 32 বা 64 তিক্ত এবং বেশিরভাগ আরডুইনো 8 টি বিটার যা এই পদ্ধতিটি ব্যবহার করার সময় ডেটা ধরণের পার্থক্যের ফলস্বরূপ যা অতিরিক্ত মনোযোগ পয়েন্ট।
যাও Arduino-ডিবাগ গ্রন্থাগার যাও Arduino স্কেচ জন্য একটি সহজ অন লক্ষ্য ডিবাগার প্রদান করে। ডিবাগ কমান্ড সরাসরি স্কেচে যুক্ত করা হয়। ব্রেক-পয়েন্ট এবং জরুরী ভিত্তিতে একটি ডিবাগার কমান্ড শেল শুরু হয়।
উপরের স্ক্রিনশটটিতে অ্যাপ্লিকেশন দ্বারা ব্যবহৃত সিরিয়াল আউটপুট মনিটর এবং ডিবাগার শেলের জন্য ব্যবহৃত সিরিয়াল 1 সহ একটি আরডুইনো মেগায় চালিত উদাহরণস্বরূপ স্কেচ দেখায় ।
স্কেচ ডিবাগ কমান্ড
ডিবাগ শেল কমান্ড
সমস্ত ডিবাগ শেল কমান্ড একক অক্ষর কমান্ড সংক্ষিপ্ত করা যেতে পারে। আরও বিশদের জন্য দয়া করে README দেখুন; ইনস্টলেশন বিশদ, উদাহরণস্বরূপ স্কেচ এবং বেঞ্চমার্কিং।