فائدہ:
- متعلقہ کوڈ اور منظر نامے کے سیاق و سباق کے ساتھ مصنوعی ذہانت کو کریش ریکارڈز (اسٹیک ٹریس) دے کر ممکنہ بنیادی وجوہات کو فوری طور پر کم کرنے کی صلاحیت
- کوڈ میں ایک مفروضے کے طور پر AI کی تشخیص کی توثیق کرنے اور علامت کی جانچ اور خاموشی کے بجائے بنیادی وجہ کو مستقل طور پر حل کرنے کی صلاحیت
- کریش ریکارڈز اور لاگز میں ذاتی ڈیٹا کو چھپا کر ڈیبگ کرتے وقت رازداری کی حفاظت کرنا
ہر درخواست غلطیاں دیتی ہے۔ ایک اچھے ڈویلپر کو جو چیز ممتاز کرتی ہے وہ یہ ہے کہ وہ کتنی جلدی کیڑے ڈھونڈتے اور ٹھیک کرتے ہیں۔ موبائل ڈیبگنگ — کسی مسئلے کے ماخذ کو تلاش کرنا اور اسے ٹھیک کرنا — خاص طور پر مشکل ہے کیونکہ خرابی صارف کے آلے پر ایسے ماحول میں ہوتی ہے جسے آپ نہیں دیکھ سکتے۔ زیادہ تر وقت، آپ کے پاس صرف ایک کریش لاگ ہوتا ہے (کریش لاگ / اسٹیک ٹریس — ایک تکنیکی خرابی جہاں ایپلی کیشن کریش ہوئی تھی)۔ AI ان خفیہ ریکارڈوں کو پڑھنے، ممکنہ وجوہات کی فہرست بنانے اور حل تجویز کرنے میں انتہائی طاقتور ہے۔ اس یونٹ میں ہم AI کو بطور "بگ جاسوس" استعمال کرنے کا طریقہ سیکھیں گے لیکن حتمی تشخیص کی تصدیق اور درست کرنے کی ذمہ داری آپ پر چھوڑتے ہیں۔
کریش لاگ پڑھنا: جہاں AI سب سے زیادہ چمکتا ہے۔
کریش لاگ ایک لمبا اور خوفناک متن ہے۔ ناتجربہ کار ڈویلپر کو معلوم نہیں ہوگا کہ کہاں دیکھنا ہے۔ AI اس متن کو سیکنڈوں میں پارس کرتا ہے: یہ کس لائن پر کریش ہوا، کون سا استثناء پھینکا گیا، اس کی ممکنہ وجہ کیا ہے۔ موبائل کی عام خرابیاں واضح ہیں اور AI انہیں تیزی سے پہچان لیتا ہے: NullPointerException (ایک کالعدم قدر تک رسائی حاصل کرنے کی کوشش کرنا)، IndexOutOfBoundsException (کسی غیر موجود فہرست عنصر تک رسائی)، Android پر EXC_BAD_ACCESS (آزاد میموری تک رسائی)، iOS پر غیر متوقع طور پر ایک آپشن ملا (غیر متوقع طور پر)۔
موبائل کریش کی سب سے عام اقسام اور ان کی عام وجوہات درج ذیل ہیں:
خرابی (استثنیٰ)
پلیٹ فارم
عام وجہ
NullPointerException
اینڈرائیڈ
کالعدم قدر تک رسائی حاصل کرنا
IndexOutOfBoundsException
اینڈرائیڈ
غیر موجود فہرست عنصر تک رسائی حاصل کرنا
غیر متوقع طور پر صفر ملا
iOS
ایک صفر اختیاری (!) کو زبردستی کھولنا
EXC_BAD_ACCESS
iOS
آزاد میموری تک رسائی حاصل کرنا
ANR/منجمد
اینڈرائیڈ
مین تھریڈ پر لمبی/بھاری پروسیسنگ
مرحلہ وار ڈیبگنگ بہاؤ:
- ریکارڈ جمع کریں۔ کریش لاگ، ایرر میسج، اور اگر ممکن ہو تو اسے دوبارہ پیش کرنے کے اقدامات کو ایک ساتھ رکھیں۔
- AI سیاق و سباق دیں۔ مجھے نہ صرف غلطی، بلکہ کوڈ کا متعلقہ ٹکڑا اور اس کے کریش ہونے کے بارے میں بتائیں۔
- ممکنہ وجوہات کے بارے میں پوچھیں۔ "مجھے 3 ممکنہ وجوہات اور ہر ایک کی تصدیق کرنے کا طریقہ بتائیں۔"
- تصدیق کریں۔ کوڈ اور جانچ میں مجوزہ وجہ کی تصدیق کریں۔ اندازہ لگا کر اسے ٹھیک نہ کریں۔
- اسے ٹھیک کریں اور دوبارہ ٹیسٹ کریں۔ چیک کریں کہ غلطی اصل میں ختم ہو گئی ہے اور کوئی نئی خرابی پیدا نہیں ہوئی ہے۔
ٹپ: AI کو کریش لاگ دیتے وقت، متعلقہ کوڈ کا ٹکڑا بھی شامل کریں۔ صرف اسٹیک ٹریس کے ساتھ ہی AI عمومی پیشین گوئی کرتا ہے۔ جب آپ کوڈ دیکھتے ہیں، تو درست لکیر اور اصل وجہ تلاش کرنے کا امکان بہت بڑھ جاتا ہے۔ سیاق و سباق تشخیص کے معیار کا تعین کرتا ہے۔
ذاتی ڈیٹا ٹریپ
کریش لاگز اور لاگز میں اکثر صارف کا ڈیٹا ہوتا ہے: ای میل، صارف کی شناخت، مقام، یہاں تک کہ مواد کی شکل بھی۔ اس ریکارڈ کو AI میں چسپاں کرنا جیسا کہ تیسرے فریق کو ذاتی ڈیٹا لیک کرنا ہے اور KVKK/GDPR کی خلاف ورزی ہے۔ ریکارڈنگ جمع کرانے سے پہلے ذاتی جگہوں کو (ماسک) صاف کریں۔ اس کے علاوہ، محتاط رہیں کہ شروع سے اپنی درخواست کے لاگز میں ذاتی ڈیٹا نہ لکھیں۔ ایک اچھا لاگ مسئلہ کو بیان کرتا ہے لیکن شناخت ظاہر نہیں کرتا۔
احتیاط: AI کی طرف سے تجویز کردہ حل "بگ کو خاموش" کر سکتا ہے لیکن اس کی بنیادی وجہ کو حل نہیں کر سکتا۔ مثال کے طور پر، ایک NullPointerException کو null چیک کے ساتھ لپیٹنا کریش کو روک دے گا، لیکن اگر آپ یہ نہیں سمجھتے ہیں کہ ویلیو null کیوں ہے تو اصل منطق کی خرابی جاری رہے گی۔ بیماری کا علاج کرو، علامت کا نہیں۔
بنیادی وجہ تجزیہ
پیشہ ورانہ ڈیبگنگ کا مقصد غلطی کو خاموش کرنا نہیں بلکہ اس کی بنیادی وجہ تلاش کرنا ہے۔ میں نے AI سے پوچھا "یہ کالعدم کیوں ہو سکتا ہے، یہ ڈیٹا کے بہاؤ میں کہاں کھو گیا ہو؟" پوچھا، "میں اسے کیسے خاموش کروں؟" یہ مانگنے سے کہیں زیادہ قیمتی ہے۔ ایک بار جب بنیادی وجہ مل جاتی ہے، تو ایک ہی غلطی کی درجنوں مختلف حالتیں ایک ساتھ حل ہو جاتی ہیں۔ AI اس سلسلہ استدلال میں اچھا ہے: ان پٹ سے لے کر آؤٹ پٹ تک ڈیٹا کی پیروی کریں اور اس سے یہ سوچنے کو کہیں کہ یہ کہاں ٹوٹتا ہے۔
تین چھوٹے مقدمات
کیس 1 - 10 منٹ میں 2 گھنٹے کام۔ ایک ڈویلپر نے ایک بگ کی تلاش میں 2 گھنٹے گزارے جو صرف ایک مخصوص Samsung ماڈل پر کریش ہوا۔ AI کو کریش لاگ (ذاتی علاقوں کو صاف کرنا) دیا؛ YZ نے کہا کہ غلطی میموری کے اوور فلو کی طرف اشارہ کرتی ہے جو اس ڈیوائس کے مختلف کیمرہ ریزولوشن کے ساتھ ہوتا ہے۔ سراغ سے 10 منٹ میں وجہ معلوم ہو گئی۔ AI نے تلاش کو تیز کیا، انسان نے حل کی تصدیق کی۔
کیس 2 - خاموش بگ واپس آ گیا ہے۔ ایک ٹیم نے بار بار آنے والے حادثے کو پکڑنے کے لیے AI تجویز کا استعمال کرکے خاموش کردیا۔ کریش ہونا بند ہو گیا، لیکن صارفین نے شکایت شروع کر دی کہ "ڈیٹا محفوظ نہیں ہو رہا"۔ کیونکہ اصل مسئلہ (ڈیٹا بیس کنکشن) ابھی باقی تھا، یہ ابھی پوشیدہ ہو گیا تھا۔ ایک بار جب بنیادی وجہ مل گئی، حادثے اور ڈیٹا کے نقصان دونوں کو حل کیا گیا تھا. سبق: خاموش رہنے سے حل نہیں ہوتا۔
کیس 3 - لاگ میں ڈیٹا لیک ہو گیا۔ ایک آڈٹ سے معلوم ہوا کہ ایپ کے کریش لاگز میں صارفین کے مکمل نام اور فون نمبر لکھے گئے تھے۔ ڈویلپرز نے معمول کے مطابق ان لاگز کو AI میں چسپاں کیا اور کیڑے ٹھیک کیے؛ لہذا ذاتی ڈیٹا مہینوں سے باہر جا رہا ہے۔ لاگز کو نقاب پوش کیا گیا تھا اور عمل کو درست کیا گیا تھا۔ سبق: ڈیبگ کرنے پر بھی رازداری لاگو ہوتی ہے۔
کمزور فوری / مضبوط اشارہ
ناقص اشارہ: "یہ خرابی کیوں واقع ہوتی ہے؟ [اسٹیک ٹریس]"
مضبوط اشارہ: "یہ کریش میری اینڈرائیڈ ایپ میں ہو رہا ہے۔ سیاق و سباق:- کرتے ہوئے: صارف پروڈکٹ کی تفصیل سے کارٹ میں شامل کر رہا ہے- صرف کچھ آلات پر، کم RAM ماڈلز- متعلقہ کوڈ: [ویو ماڈل اور ریپوزٹری کا حصہ]- کریش لاگ (ذاتی ڈیٹا صاف کیا گیا): [اسٹیک ٹریس] 3 سب سے زیادہ ممکنہ روٹ اسباب کی فہرست بنائیں: ہر ایک کے لیے بنیادی وجوہات کو کیسے درست کریں، I do 2 کے لیے (خاموش نہیں) اپنے مفروضے کو بیان کریں جہاں آپ کو یقین نہیں ہے۔"
کاپی کرنے کے قابل ٹیمپلیٹس
کریش تجزیہ ٹیمپلیٹ: "مندرجہ ذیل کریش کا تجزیہ کریں۔ سیاق و سباق: [آپ کیا کر رہے ہیں، کون سا آلہ/ورژن]۔ متعلقہ کوڈ: [کوڈ]۔ کریش لاگ (ذاتی ڈیٹا صاف کیا گیا): [ٹریس]۔ 3 ممکنہ طور پر بنیادی وجوہات اور توثیق + ہر ایک کے لیے مستقل درست کریں۔
بنیادی وجہ ٹیمپلیٹ: "یہ قدر غیر متوقع طور پر آتی ہے [null/false]۔ ان پٹ سے اس مقام تک ڈیٹا کے بہاؤ کی پیروی کریں: یہ کہاں گم یا خراب ہو سکتا ہے؟ مجھے بتائیں کہ مجھے ہر مرحلے پر کہاں چیک کرنا چاہیے۔ [code]"
لاگ ریڈنگ ٹیمپلیٹ: "اس لاگ آؤٹ پٹ کی تشریح کریں: کیا واقعات ترتیب سے ہوئے، اسامانیتا کہاں ہے، خرابی سے پہلے آخری صحت مند قدم کیا تھا؟ [لاگ — ذاتی ڈیٹا صاف کیا گیا]"
ری پروڈکشن ٹیمپلیٹ: "مجھے کن مراحل، ڈیوائس کی حالتیں، اور ڈیٹا کو قابل اعتماد طریقے سے اس خرابی کو دوبارہ پیش کرنے کی کوشش کرنی چاہیے؟ ان شرائط کی فہرست بنائیں جو امکان کے لحاظ سے غلطی کو متحرک کر سکیں۔ [تفصیل]"
عام غلطیاں
- سیاق و سباق سے پاک اسٹیک ٹریس دینا۔ متعلقہ کوڈ اور منظر نامے کے بغیر، AI عمومی پیشین گوئی کرتا ہے۔
- لاگز کے ساتھ ذاتی ڈیٹا کو AI میں چسپاں کرنا۔ رازداری کی خلاف ورزی؛ پہلے ماسک.
- علامت کو خاموش کریں۔ ٹرائی کیچ کے ساتھ کریش کو چھپانے سے مسئلہ جڑ سے نکل جاتا ہے اور نئے مسائل پیدا ہوتے ہیں۔
- پہلی تجویز کو تصدیق کیے بغیر لاگو کرنا۔ AI کی تشخیص ایک مفروضہ ہے؛ کوڈ میں تصدیق کریں۔
- اسے ایمولیٹر میں دوبارہ پیش کرنے کی کوشش کر رہا ہے۔ کچھ خرابیاں صرف اصل ڈیوائس/حالت پر ظاہر ہوتی ہیں۔
- اصلاح کے بعد دوبارہ امتحان نہیں لینا۔ ٹھیک ہو سکتا ہے کچھ اور ٹوٹ گیا ہو؛ رجعت چیک کریں۔
خلاصہ میں
ان شعبوں میں سے ایک جہاں AI بہترین ہے کریش لاگز پڑھنا اور ممکنہ وجوہات کو چھانٹنا ہے۔ جب سیاق و سباق دیا جاتا ہے تو تشخیص کا معیار بہت بہتر ہوتا ہے۔ لیکن حتمی تشخیص اور اصلاح انسان سے تعلق رکھتی ہے: AI کی تجویز ایک مفروضہ ہے، جس کی تصدیق کوڈ اور ٹیسٹنگ میں ہوتی ہے۔ مقصد علامت کو خاموش کرنا نہیں بلکہ اصل وجہ کو حل کرنا ہے۔ خاموش غلطی عام طور پر دوسری شکل میں واپس آتی ہے۔ کریش لاگز میں ذاتی ڈیٹا ہو سکتا ہے۔ AI کو دینے سے پہلے اسے ماسک کریں اور شروع سے اپنے لاگز میں ذاتی ڈیٹا نہ لکھیں۔
درخواست کا کام
ایک کریش لاگ لیں جو آپ کے پاس ہے (یا جو نمونہ آپ AI سے تیار کرتے ہیں)، اس میں کسی بھی ذاتی/مخصوص ڈیٹا کو ماسک کریں، اور اسے "Crash analysis template" کے ساتھ AI کو دیں۔ تمیز کریں کہ بنیادی وجوہات میں سے کون سی AI فہرستیں اصل اصلاحات ہیں اور کون سی خاموش ہیں۔ اپنے منتخب کردہ مستقل حل کو لاگو کریں اور تصدیق کریں کہ غلطی ختم ہو گئی ہے اور کوئی نئی پریشانی پیدا نہیں ہوتی ہے۔
چیک لسٹ
- میں نے متعلقہ کوڈ اور منظر نامے کے سیاق و سباق کے ساتھ کریش لاگ دیا ہے۔
- میں نے نوشتہ جات میں ذاتی/مخصوص ڈیٹا کو نقاب پوش کر دیا۔
- [ ] میں نے AI سے بنیادی وجہ اور مستقل حل کے لیے پوچھا، خاموشی اختیار نہیں کی۔
- میں نے کوڈ اور ٹیسٹنگ میں تشخیص کی تصدیق کی، میں نے اسے آنکھیں بند کرکے لاگو نہیں کیا۔
- درست کرنے کے بعد، میں نے ٹیسٹ کیا کہ غلطی ختم ہو گئی تھی اور کوئی رجعت نہیں تھی۔
- [ ] میں نے چیک کیا کہ میری درخواست اپنے لاگز میں ذاتی ڈیٹا نہیں لکھتی ہے۔