پڑھنے کا وقت: 4 منٹ
یہ گائیڈ آپ کو اس گندے بگ کو تلاش کرنے میں مدد کر سکتا ہے جو آپ کو پریشان کر رہا ہے اور ان کو ٹھیک کرنے کے لیے ٹولز۔
ڈیبگنگ کسی بھی سافٹ ویئر ڈویلپمنٹ سائیکل کے لیے بہت ضروری ہے۔ انسان ہمیشہ غلطیاں کرتے ہیں۔ اسی لیے ہم ناقابل شکست ہیں۔ ہم غلطیاں کرتے ہیں اور ان سے سیکھتے ہیں۔ ڈیبگنگ یہ معلوم کرنے کا عمل ہے کہ ہمارا کوڈ کہاں پیچھے ہے، اسے ٹھیک کرنا، اور اس غلطی کے بارے میں سیکھنا تاکہ اسے دہرایا نہ جائے۔
بلاک چین ایپلی کیشنز کی تعمیر کے لیے سمارٹ کنٹریکٹ کی ترقی بہت اہم ہے۔ لیکن جیسا کہ کسی دوسرے سافٹ ویئر ڈویلپمنٹ سائیکل کی ڈیبگنگ کے ساتھ سمارٹ معاہدوں میں کبھی کبھی چیلنج ہو سکتا ہے، اور جیسا کہ یہاں ہم اکثر بڑی رقم کا سودا کرتے ہیں، ہم کسی بھی چیز کو موقع پر نہیں چھوڑ سکتے۔ ہمیں سمارٹ کنٹریکٹ لکھنے میں کامل اور ڈیبگنگ میں کامل ہونا چاہیے۔ اسی لیے ہم یہ بلاگ لے کر آئے ہیں تاکہ آپ بہترین سے ڈیبگنگ کے بارے میں جان سکیں۔
کسی بھی چیز کو ٹھیک کرنے سے پہلے، ہمیں اس مسئلے کو جاننے کی ضرورت ہے، لہذا آئیے سمارٹ کنٹریکٹ کی ترقی میں مختلف قسم کے کیڑے کی شناخت کے ساتھ شروع کریں۔
عام نقائص
اس سیکشن میں، ہم سمارٹ کنٹریکٹ ڈویلپرز کو باقاعدگی سے آنے والے مختلف قسم کے کیڑے تلاش کریں گے۔
- ترکیب غلطی:- یہ غلطی ٹھیک کرنا آسان ہے۔ ایسا اس وقت ہوتا ہے جب ایک ڈویلپر کوڈ کی غلطی کرتا ہے جو کمپیوٹر کو اسے سمجھنے سے روکتا ہے، جیسے کہ سیمی کالون غائب ہے۔
- منطقی خرابی:- اس قسم کی غلطی کو تلاش کرنا بعض اوقات مشکل ہو سکتا ہے۔ یہ عمل درآمد کو نہیں روکتا، لیکن پروگرام کی فعالیت کو تبدیل کر دیا جاتا ہے۔ یہ پروگرام غیر متوقع طور پر ایک سمارٹ کنٹریکٹ کی طرح برتاؤ کرتا ہے جو رقم کو ایک اکاؤنٹ سے دوسرے اکاؤنٹ میں بھیجتے وقت غلط ایڈریس پر منتقل کرتا ہے۔
- رن ٹائم خرابی:- ان غلطیوں کا اندازہ لگانا مشکل ہے۔ وہ ایک غیر متوقع وقت اور غیر متوقع جگہوں پر آتے ہیں۔ یہ سمارٹ معاہدوں پر عمل درآمد کے دوران ہوتا ہے اور غیر مستثنیٰ ہینڈلنگ کی وجہ سے ہوتا ہے۔ مثال کے طور پر، یہ اس وقت ہو سکتا ہے جب کوئی معاہدہ غیر متوقع ان پٹ کو سنبھالنے میں ناکام ہو جاتا ہے یا کسی ایسے آپریشن کو انجام دینے کی کوشش کرتا ہے جسے بنیادی بلاکچین کے ذریعے ممنوع قرار دیا جاتا ہے۔ مثال کے طور پر، ایک معاہدہ اجازت شدہ پیرامیٹر سے زیادہ رقم منتقل کرنے کی کوشش کر رہا ہے۔
- پھانسی کی واپسی کی خرابیاں:- ایسا اس وقت ہوتا ہے جب صارف کوئی ایسی ناجائز درخواست کرتا ہے جو سمارٹ کنٹریکٹ کی منطق کے خلاف ہو تو درخواست منسوخ کر دی جاتی ہے اور واپس کر دی جاتی ہے۔ ایسا اس لیے ہوتا ہے کیونکہ بعض اوقات سمارٹ معاہدوں کو لین دین پر کارروائی کرنے کے لیے کچھ تقاضوں کو پورا کرنے کی ضرورت ہوتی ہے۔ پھر بھی، صارف ضروریات کو پورا کیے بغیر لین دین کے ساتھ آگے بڑھتا ہے، اور پھر لین دین کو آگے نہیں بڑھایا جاتا اور واپس نہیں جاتا۔ مثال کے طور پر، ایک صارف $100 منتقل کرنے کی کوشش کر رہا ہے لیکن اس کے پاس $50 کا بیلنس ہے۔
- اسٹیک اوور بہاؤ:- کارروائیوں کو انجام دینے کے وسائل پر گیس فیس لاگت آتی ہے۔ فنکشن جتنی بھاری ہوگی، قیمت اتنی ہی زیادہ ہوگی۔ کوڈنگ میں کچھ بھاری میکانزم ہیں لوپس اور
بار بار آنے والی کالیں<!– wp:paragraph –> Recursive call ایک ایسی شرط ہے جو اپنے آپ کا حوالہ دے سکتی ہے اور انہیں ایک لوپ میں بار بار کال کر سکتی ہے۔ تکراری فنکشن بیس کیس (اگر) اور انڈکشن کیس (اور) استعمال کرتا ہے۔ کوڈ میں دوبارہ آنے والی کالوں کا استحصال کرکے دوبارہ داخلے کے حملے کیے جاتے ہیں۔ <br/><!– /wp:paragraph –>
” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>بار بار آنے والی کالز۔ اسٹیک اوور فلو کا تعلق ہے۔
بار بار آنے والی کالیں<!– wp:paragraph –> Recursive call ایک ایسی شرط ہے جو اپنے آپ کا حوالہ دے سکتی ہے اور انہیں ایک لوپ میں بار بار کال کر سکتی ہے۔ تکراری فنکشن بیس کیس (اگر) اور انڈکشن کیس (اور) استعمال کرتا ہے۔ کوڈ میں دوبارہ آنے والی کالوں کا استحصال کرکے دوبارہ داخلے کے حملے کیے جاتے ہیں۔ <br/><!– /wp:paragraph –>” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>بار بار آنے والی کالز۔
بار بار آنے والی کالیں<!– wp:paragraph –> Recursive call ایک ایسی شرط ہے جو اپنے آپ کا حوالہ دے سکتی ہے اور انہیں ایک لوپ میں بار بار کال کر سکتی ہے۔ تکراری فنکشن بیس کیس (اگر) اور انڈکشن کیس (اور) استعمال کرتا ہے۔ کوڈ میں دوبارہ آنے والی کالوں کا استحصال کرکے دوبارہ داخلے کے حملے کیے جاتے ہیں۔ <br/><!– /wp:paragraph –>” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>بار بار آنے والی کالیں ایک ہی فنکشن کے اندر مختلف ان پٹ کے ساتھ کسی فنکشن کی درخواست کرنے کا طریقہ ہے۔ گنے کے رس کی مشین کے طور پر بار بار چلنے والی تقریب کے بارے میں سوچ سکتا ہے۔ مشین ایک فنکشن کے طور پر کام کرتی ہے اور گنے کو ان پٹ کے طور پر۔ مشین سے گنے کے ہر رن کا مطلب ایک فنکشن کال ہے۔ ایک دفعہ کے بعد، گنے دوبارہ مشین کے نیچے چلا جاتا ہے، اور یہ عمل دہرایا جاتا ہے۔ یہ وہی ہے جو تکرار ہے۔ لیکن جیسا کہ ہم گیس کے اخراجات اور ای وی ایم وسائل میں کمی کرنا چاہتے ہیں، ایتھریم 1024 بار تک تکرار کال کو محدود کرتا ہے۔ جب آپ کسی فنکشن کو 1025 ویں بار کال کرتے ہیں تو اس کے نتیجے میں اسٹیک اوور فلو ہوتا ہے۔
- JUMP غلطی:- جب آپ کسی ایسے فنکشن کو کال کرنے کی کوشش کرتے ہیں جو موجود نہیں ہے یا اسمبلی لینگویج استعمال کرتے ہیں اور غلط میموری کی طرف اشارہ کرتے ہیں تو اس کے نتیجے میں ایک غلطی ہوتی ہے۔ یہ تب بھی ہو سکتا ہے جب آپ کسی دوسرے معاہدے کے فنکشن کو کال کریں، لیکن وہ فنکشن موجود نہیں ہے۔ اس قسم کی غلطیوں کو JUMP errors کہا جاتا ہے۔
یہ کچھ عام سمارٹ کنٹریکٹ کی خرابیاں تھیں جو ڈویلپرز کا سامنا کرتی ہیں۔ غلطیوں کا پتہ لگانا اور سمجھنا بعض اوقات مشکل ہو سکتا ہے۔ غلطیوں کو تلاش کرنے اور انہیں ٹھیک کرنے کی کوشش کرنے کے لیے، ہم مختلف ٹولز کی مدد لیتے ہیں۔ آئیے اگلے حصے میں ایک ایک کرکے ان کے ذریعے چلتے ہیں۔
چار کارآمد ڈیبگنگ ٹولز
اس سیکشن میں، ہم ان ٹولز کے بارے میں جانیں گے جو دنیا بھر کے تجربہ کار ڈویلپرز کی جانب سے کیڑے کی شناخت اور حل کرنے کے لیے استعمال کیے جاتے ہیں۔ چلو.
ہردت
یہ ٹول مختلف پیرامیٹرز پر سمارٹ معاہدوں کی جانچ کے لیے بڑے پیمانے پر استعمال اور قبول کیا جاتا ہے۔ یہ Ethereum کے لیے اوپن سورس ڈویلپمنٹ ماحول فراہم کرتا ہے۔ اس میں سمارٹ معاہدوں کو تیار کرنے، جانچنے، اور تعینات کرنے کے ٹولز شامل ہیں۔ اس کا بلٹ ان ڈیبگر دنیا بھر کے بہت سے ڈویلپرز کے لیے مددگار ہے۔ یہ جانچ کے مرحلے میں بھی ایک بھاری کردار ادا کرتا ہے۔
ٹرفل
یہ Ethereum کے لیے ایک مقبول ترقیاتی فریم ورک ہے۔ ہارڈ ہیٹ کی طرح، اس میں سمارٹ معاہدوں کو تیار کرنے، جانچنے اور ان کی تعیناتی کے اوزار بھی شامل ہیں ٹرفل ڈیبگر، جو جانچ کے مرحلے میں ترقی کے ہموار تجربے کے ساتھ ڈویلپرز کی مدد کرتا ہے۔
ریمکس
یہ وہی ہے جو تقریباً ہر ڈویلپر نے اس وقت دیکھا جب انہوں نے پہلی بار web3 میں اپنا سفر شروع کیا۔ یہ مضبوطی کے لیے ایک آن لائن کوڈ ایڈیٹر ہے، لہذا ترقی کے ساتھ شروع کرنے کے لیے کسی آف لائن تنصیب کی ضرورت نہیں ہے۔ اس کا بلٹ ان ڈیبگنگ فیچر ڈویلپرز کو کوڈ اسکین کرنے اور متغیر مسائل کا معائنہ کرنے دیتا ہے۔ اور یہ سب کچھ آن لائن ہے آف لائن ٹولز کی ضرورت نہیں۔
Etherscan
یہ Ethereum کے لیے ایک وسیع پیمانے پر بھروسہ مند اور مقبول بلاک ایکسپلورر ہے۔ یہ ڈویلپرز کو Ethereum blockchain پر تعینات سمارٹ معاہدوں کا معائنہ اور ڈیبگ کرنے کی اجازت دیتا ہے۔ اس کا استعمال کرتے ہوئے، آپ کسی بھی پتے یا معاہدے کی لین دین اور سرگرمی کو ٹریک کرسکتے ہیں۔ اس سے آپ کو یہ شناخت کرنے میں مدد ملتی ہے کہ اگر آپ کے سمارٹ کنٹریکٹ کو آن چین مسائل کا سامنا ہے تو مسئلہ کہاں ہوگا۔
نتیجہ
سمارٹ معاہدوں کو ڈیبگ کرنا مشکل اور بعض اوقات مایوس کن ہوتا ہے، لیکن یہ سیکیورٹی اور جانچ سے متعلق ایک اہم مرحلہ ہے۔ یہ وہ جگہ ہے جہاں خطرات زیادہ تر خود کو ہیکرز کے سامنے پیش کرتے ہیں اور پروٹوکول کو مکمل ناکامی کی طرف لے جا سکتے ہیں۔ اپنے آپ کو ایسے حالات سے بچانے کے لیے، یہ انتہائی مشورہ دیا جاتا ہے کہ آڈٹ کروائیں۔
QuillAudits ایک طویل عرصے سے اس عمودی میں ہے اور اس کے پاس ایک ماہر ٹیم ہے جو ہر ممکنہ خطرے کو سنبھال سکتی ہے اور آپ کو اپنے پروٹوکول کو محفوظ بنانے میں مدد کر سکتی ہے۔ ٹیسٹنگ، اس کی اہمیت، اور ڈیبگنگ کے ساتھ اس کے تعلق کے بارے میں، تفصیلی بلاگ پڑھیں، جس سے آپ کو ہر پہلو کو سمجھنے میں مدد ملے گی۔ https://blog.quillhash.com/2023/02/16/testing-and-formal-verification/. ہماری ویب سائٹ ملاحظہ کریں اور اپنے پروجیکٹ کا آڈٹ کروائیں!
12 مناظر
- SEO سے چلنے والا مواد اور PR کی تقسیم۔ آج ہی بڑھا دیں۔
- پلیٹو بلاک چین۔ Web3 Metaverse Intelligence. علم میں اضافہ۔ یہاں تک رسائی حاصل کریں۔
- ماخذ: https://blog.quillhash.com/2023/03/03/4-most-useful-smart-contract-debugging-tools/
- a
- ہمارے بارے میں
- اکاؤنٹ
- کے پار
- سرگرمی
- پتہ
- کے بعد
- کے خلاف
- تمام
- کی اجازت دیتا ہے
- ہمیشہ
- رقم
- اور
- ایک اور
- ایپلی کیشنز
- ارد گرد
- پہلو
- اسمبلی
- حملے
- کوششیں
- آڈٹ
- متوازن
- بیس
- کیونکہ
- BEST
- بلاک
- blockchain
- blockchain ایپلی کیشنز
- بلاگ
- بگ کی اطلاع دیں
- کیڑوں
- عمارت
- تعمیر
- تعمیر میں
- فون
- کہا جاتا ہے
- کالز
- نہیں کر سکتے ہیں
- لے جانے کے
- کیس
- کچھ
- چیلنج
- موقع
- حالات
- کوڈ
- کوڈنگ
- کس طرح
- کامن
- مکمل
- کمپیوٹر
- شرط
- کنٹریکٹ
- معاہدے
- قیمت
- اخراجات
- اہم
- کٹ
- سائیکل
- نمٹنے کے
- تعینات
- تعینات
- تفصیلی
- ڈیولپر
- ڈویلپرز
- ترقی
- ترقی
- مختلف
- مشکل
- کے دوران
- ہر ایک
- ایڈیٹر
- ماحولیات
- خرابی
- نقائص
- ethereum
- ایتیروم بلاچین
- بھی
- ہر کوئی
- EVM
- مثال کے طور پر
- رعایت
- پھانسی
- پھانسی
- تجربہ
- تجربہ کار
- ماہر
- تلاش
- ایکسپلورر
- سامنا کرنا پڑا
- ناکام رہتا ہے
- ناکامی
- نمایاں کریں
- فیس
- مل
- پہلا
- درست کریں
- آگے
- فریم ورک
- سے
- مایوس کن
- تقریب
- فعالیت
- گیس
- حاصل
- Go
- جاتا ہے
- رہنمائی
- ہیکروں
- ہینڈل
- ہینڈلنگ
- ہو
- ہوتا ہے
- ہارڈ
- بھاری
- بھاری
- مدد
- مدد گار
- مدد کرتا ہے
- یہاں
- انتہائی
- HTTPS
- بھاری
- انسان
- شناخت
- کی نشاندہی
- اہمیت
- in
- شامل ہیں
- ناکافی
- ان پٹ
- مسئلہ
- مسائل
- IT
- خود
- سفر
- کودنے
- جان
- پیچھے رہ
- زبان
- قیادت
- جانیں
- سیکھنے
- چھوڑ دو
- آو ہم
- امکان
- حدود
- لانگ
- طویل وقت
- مشین
- بنا
- بناتا ہے
- بہت سے
- کا مطلب ہے کہ
- یاد داشت
- طریقہ
- لاپتہ
- غلطی
- قیمت
- زیادہ
- سب سے زیادہ
- ضرورت ہے
- اگلے
- آف لائن
- آن چین
- ایک
- آن لائن
- اوپن سورس
- آپریشن
- آپریشنز
- دیگر
- پیرامیٹر
- پیرامیٹرز
- کامل
- مرحلہ
- مقامات
- پلاٹا
- افلاطون ڈیٹا انٹیلی جنس
- پلیٹو ڈیٹا
- پوائنٹ
- مقبول
- ممکن
- پیشن گوئی
- حال (-)
- کی روک تھام
- آگے بڑھتا ہے
- عمل
- نصاب
- منصوبے
- پروٹوکول
- فراہم کرتا ہے
- Quillhash
- پڑھیں
- دوبارہ آنا
- بار بار چلنے والی
- تکرار کرنا۔
- کے بارے میں
- باقاعدگی سے
- متعلقہ
- سلسلے
- بار بار
- درخواست
- کی ضرورت
- ضروریات
- وسائل
- نتائج کی نمائش
- کردار
- رن
- اسی
- محفوظ کریں
- اسکین
- سیکشن
- محفوظ بنانے
- سیکورٹی
- بھیجنا
- ہوشیار
- سمارٹ معاہدہ
- سمارٹ معاہدہ
- So
- سافٹ ویئر کی
- سوفٹ ویئر کی نشوونما
- استحکام
- کچھ
- ڈھیر لگانا
- اسٹیج
- شروع
- ابھی تک
- اس طرح
- لے لو
- ٹیم
- ٹیسٹنگ
- ۔
- دنیا
- ان
- خود
- کے ذریعے
- وقت
- اوقات
- کرنے کے لئے
- بھی
- کے آلے
- اوزار
- ٹریک
- ٹرانزیکشن
- معاملات
- منتقل
- منتقلی
- پریشانی
- قابل اعتماد
- اقسام
- کے تحت
- بنیادی
- سمجھ
- افہام و تفہیم
- غیر متوقع
- us
- استعمال کی شرائط
- رکن کا
- مختلف
- نقصان دہ
- خطرے کا سامنا
- Web3
- ویب سائٹ
- کیا
- جس
- بڑے پیمانے پر
- گے
- کے اندر
- بغیر
- دنیا
- دنیا بھر
- گا
- تحریری طور پر
- تم
- اور
- اپنے آپ کو
- زیفیرنیٹ