একটি আইসিই (ইন-সার্কিট এমুলেটর) লক্ষ্য চিপটি প্রতিস্থাপন করে। এটি সার্কিটের বাকী অংশে আসল চিপের মতো কাজ করে তবে এর ভিতরে সমস্ত ধরণের হুক রয়েছে যাতে আপনি দেখতে পাচ্ছেন কী চলছে, ব্রেক পয়েন্ট নির্ধারণ করুন, নতুন কোড লোড করুন, দখল করার চিহ্নগুলি ইত্যাদি। একটি আইসিডি (ইন-সার্কিট ডিবাগার) ব্যবহার করে সেই উদ্দেশ্যে লক্ষ্য চিপটিতে বিশেষ ডিবাগ হার্ডওয়্যার যুক্ত হয়েছে এবং আপনাকে আইসিই-এর মতো ক্ষমতা দেওয়ার চেষ্টা করে। দুর্ভাগ্যক্রমে, বিপণনের লোকেরা তাদের পণ্যগুলি পরবর্তী পণ্যগুলির চেয়ে আরও ভাল মনে করার জন্য আপনাকে প্রতারিত করার প্রয়াসে এই দীর্ঘস্থায়ী পদগুলি পুনরায় সংজ্ঞায়িত করার চেষ্টা করেছে। মাইক্রোচিপের রিয়েলআইস এটির একটি বিশেষ উদাহরণ। এটি বাস্তব, তবে একটি জিনিস এটি নয় ICE I
একটি সত্যিকারের আইসিই (রিয়েলআইস নয়) হ'ল সার্কিটের ডিবাগিংয়ের পরিবেশ। দুর্ভাগ্যক্রমে আইসিইতে ব্যবহারের জন্য টার্গেট চিপের একটি বিশেষ বন্ডআউট সংস্করণ তৈরি করার উচ্চ ব্যয়ের কারণে এবং গতিটি এত বেশি বেড়ে গেছে যে চিপকে ছাড়িয়ে নেওয়া সমস্যাযুক্ত হওয়ায় দুর্ভাগ্যক্রমে এগুলি বেশ দূরে চলে গেছে। আর একটি সমস্যা হ'ল আইসিইর জন্য লক্ষ্য চিপটি সকেটে থাকা প্রয়োজন, বা লক্ষ্য চিপের জায়গায় একটি বিশেষ অ্যাডাপ্টার লাগানো প্রয়োজন যাতে আইসিই তার লাইনের সাথে সংযোগ স্থাপন করতে পারে।
তাই আজ আমরা আইসিডি দিয়ে আটকে আছি। ভাগ্যক্রমে তারা একটি আইসিই দিয়ে আপনি যা করতে চান তার বেশিরভাগ কাজ করে। এমনকি তাদের একটি সুবিধা আছে যে কোডটি আসল টার্গেট চিপে চলছে, টার্গেট চিপের মতো হওয়ার চেষ্টা করছে না । খারাপ দিকটি হ'ল তাদের অন-চিপ সংস্থানগুলি প্রয়োজন তাই আপনার কোডে সম্পূর্ণ স্বচ্ছ নয় এবং আইসিইর মতো হার্ডওয়্যার। আইসিডির ডিবাগিং লাইনগুলিতে অ্যাক্সেস প্রয়োজন, এতে প্রায়শই একাধিক ভূমিকা থাকতে পারে। ডিবাগ করার সময় আপনি এই পিনগুলি অন্য রোলগুলিতে ব্যবহার করতে পারবেন না। প্রতিটি অংশে নির্মিত ডিবাগ সার্কিটরির পরিমাণ অবশ্যই মোটের একটি ছোট অংশে রাখতে হবে অন্যথায় ব্যয়টি খুব বেশি হবে, তাই বৈশিষ্ট্যগুলি আপোস করতে হবে। একটি দুর্দান্ত বৈশিষ্ট্য যা প্রতিটি চিপে যুক্ত করা খুব ব্যয়বহুল হবে তা হ'ল সঠিক ট্রেস ক্ষমতা, কারণ এর জন্য একটি বড় র্যাম বাফার প্রয়োজন buff
প্রতিটি সমস্যা শেষ পর্যন্ত বিভিন্ন সরঞ্জাম দিয়ে সমাধান করা যেতে পারে। আপনি এটি সমাধান করতে পারবেন কিনা তা নয়, তবে এটি কত দিন এবং কত প্রচেষ্টা নেয়। যখন আমি নিয়মিত আইসিই (মাইক্রোচিপ আইসিই -2000 এবং আইসিই -4000) ব্যবহার করতাম, আমি প্রায়শই ট্রেস বৈশিষ্ট্যটি ব্যবহার করি না, তবে যখন আমি অন্য উপায়ে করতাম তখন তা আরও ব্যয়বহুল হত। কখনও কখনও আপনার একটি বাগ থাকে যেখানে কোনও ভেরিয়েবলের হঠাৎ এটির মধ্যে ভুল মান থাকে। আপনি কোডের মাধ্যমে পদক্ষেপ নিলেন এবং সবকিছু ঠিকঠাক এবং রুটিন যা ভেরিয়েবলকে ম্যানিপুলেট করে তা সমস্ত কিছু ঠিকঠাক করে বলে মনে হয়, তবে আপনি যখন এটি চালান তখন অবশেষে জিনিসগুলি ক্র্যাপ হয়ে যায় এবং আপনি সেই পরিবর্তনশীল ট্র্যাশটি খুঁজে পান। কারণটি হ'ল খারাপ পয়েন্টার, বাফার ওভারফ্লো, স্ট্যাক অমিল বা এর মতো আরও কিছু কোড। একটি আইসিই দিয়ে আপনি পরিবর্তনশীল পরিবর্তিত হওয়ার বিষয়ে একটি ব্রেকপয়েন্ট নির্ধারণ করতে পারেন,
বেশিরভাগ সময়, একটি আইসিডি যথেষ্ট ভাল করবে। বিশেষত বড় চিপগুলির সাথে, ডিবাগিংয়ের জন্য উত্সর্গীকৃত দম্পতি পিনগুলি খুব বেশি সমস্যার নয়। আজকাল আমি বেশিরভাগ রিয়েলআইস ডিবাগিংয়ের জন্য ব্যবহার করি। এটি আইসিডি 2 এর তুলনায় অনেক বেশি স্থিতিশীল এবং কম অদৃশ্য। আপনি এটি সঙ্গে বাস করতে শিখুন।