ඒකක
1. ජංගම සංවර්ධනයේ AI සඳහා හැඳින්වීම: භූමිකාවන්, සීමාවන්, සත්‍යාපනය සහ ආරක්ෂාව 2. කෘතිම බුද්ධිය සහිත ජංගම කේත උත්පාදනය: කොට්ලින්, ස්විෆ්ට් සහ හරස් වේදිකා සංවර්ධනය 3. කෘත්‍රිම බුද්ධිය සහිත අතුරු මුහුණත් නිර්මාණය සහ UI කේත උත්පාදනය 4. On-Device AI: Core ML, TensorFlow Lite සහ ML Kit 5. Cloud AI සහ LLM API ඒකාබද්ධ කිරීම: කතාබස්, ප්රවාහ සහ ආරක්ෂාව 6. කෘතිම බුද්ධිය සමඟ පරීක්ෂණ උත්පාදනය: ඒකකය, අතුරුමුහුණත සහ ස්වයංක්‍රීයකරණ පරීක්ෂණ 7. කෘත්‍රිම බුද්ධිය සමඟින් නිදොස්කරණය සහ බිඳ වැටීම් විශ්ලේෂණය 8. කාර්ය සාධනය සහ බැටරි ප්‍රශස්තකරණය: කෘතිම බුද්ධිය සමඟ වේගවත් හා කාර්යක්ෂම යෙදුම් 9. පුද්ගලිකත්වය, අවසර සහ ආරක්ෂිත භාවිතය 10. ගබඩා නිකුතුව: App Store, Google Play සහ AI අනුකූලතාව 11. අවසානයේ සිට අවසානය දක්වා ව්‍යාපෘතිය, කෘත්‍රිම බුද්ධියේ වගකීම් සහගත භාවිතය සහ වෘත්තිය තුළ මාර්ග සිතියම
ඒකකය 7 / 11

කෘත්‍රිම බුද්ධිය සමඟින් නිදොස්කරණය සහ බිඳ වැටීම් විශ්ලේෂණය

ලාභ:

  • අදාළ කේත සහ අවස්ථා සන්දර්භය සමඟින් කෘත්‍රිම බුද්ධියට බිඳ වැටීම් වාර්තා (ස්ටැක් ට්‍රේස්) ලබා දීමෙන් විය හැකි මූල හේතු ඉක්මනින් අඩු කිරීමේ හැකියාව
  • කේතයේ උපකල්පනයක් ලෙස AI හි රෝග විනිශ්චය තහවුරු කිරීම සහ රෝග ලක්ෂණය පරීක්ෂා කිරීම සහ නිශ්ශබ්ද කිරීම වෙනුවට මූල හේතුව ස්ථිරවම විසඳීමේ හැකියාව
  • බිඳවැටීම් වාර්තා සහ ලොග වල පුද්ගලික දත්ත වසං කිරීම මගින් නිදොස් කිරීමේදී පුද්ගලිකත්වය ආරක්ෂා කිරීම

සෑම යෙදුමක්ම දෝෂ ලබා දෙයි; හොඳ සංවර්ධකයෙකු කැපී පෙනෙන දෙය නම් ඔවුන් කෙතරම් ඉක්මනින් දෝෂ සොයා ගෙන ඒවා නිවැරදි කරයිද යන්නයි. ජංගම නිදොස්කරණය - ගැටලුවක මූලාශ්‍රය සොයා ගැනීම සහ නිවැරදි කිරීම - ඔබට නොපෙනෙන පරිසරයක පරිශීලකයාගේ උපාංගයේ දෝෂය සිදු වන නිසා විශේෂයෙන් අපහසු වේ. බොහෝ විට, ඔබ සතුව ඇත්තේ බිඳ වැටීම් ලොගයක් පමණි (බිඳවැටීම් ලොගය / ස්ටැක් ට්‍රේස් — යෙදුම බිඳ වැටුණු විට එය ගිය ස්ථානය පිළිබඳ තාක්ෂණික බිඳවැටීමක්). AI මෙම ගුප්ත වාර්තා කියවීම, විය හැකි හේතු ලැයිස්තුගත කිරීම සහ විසඳුම් යෝජනා කිරීම සඳහා අතිශයින් බලවත් වේ. මෙම ඒකකයෙන් අපි "දෝෂ රහස් පරීක්ෂකයෙකු" ලෙස AI භාවිතා කරන්නේ කෙසේදැයි ඉගෙන ගනු ඇත, නමුත් අවසාන රෝග විනිශ්චය සහ නිවැරදි කිරීමේ වගකීම ඔබට භාර දෙමු.

බිඳ වැටීම් ලොගය කියවීම: AI වඩාත් දීප්තිමත් වන තැන

බිඳ වැටීම් ලොගයක් යනු දිගු හා බිය උපදවන පාඨයකි; අද්දැකීම් අඩු සංවර්ධකයෙකු සොයන්නේ කොහේදැයි නොදනී. AI මෙම පෙළ තත්පර කිහිපයකින් විග්‍රහ කරයි: එය කඩා වැටුණේ කුමන රේඛාවේදීද, කුමන ව්‍යතිරේකය විසි කළේද, විය හැකි හේතුව කුමක්ද. සාමාන්‍ය ජංගම දෝෂ පැහැදිලිව පෙනෙන අතර AI ඒවා ඉක්මනින් හඳුනා ගනී: NullPointerException (ශුන්‍ය අගයකට ප්‍රවේශ වීමට උත්සාහ කිරීම), IndexOutOfBoundsException (නොපවතින ලැයිස්තු මූලද්‍රව්‍යයකට ප්‍රවේශ වීම), EXC_BAD_ACCESS (අනපේක්ෂිත ලෙස iOS සඳහා සොයාගත් විකල්පය සඳහා නිදහස් මතකය ප්‍රවේශ වීම).

ජංගම දුරකථන බිඳවැටීම් වල වඩාත් සුලභ වර්ග සහ ඒවායේ සාමාන්‍ය හේතු පහත පරිදි වේ:

දෝෂය (ව්යතිරේක)

වේදිකාව

සාමාන්ය හේතුව

NullPointerException

ඇන්ඩ්රොයිඩ්

ශුන්‍ය අගයකට ප්‍රවේශ වීම

IndexOutOfBoundsException

ඇන්ඩ්රොයිඩ්

නොපවතින ලැයිස්තු මූලාංගයට ප්‍රවේශ වීම

අනපේක්ෂිත ලෙස හමු වූයේ නැත

iOS

බලහත්කාරයෙන් nil විකල්ප (!)

EXC_BAD_ACCESS

iOS

නිදහස් මතකයට ප්‍රවේශ වීම

ANR/Freeze

ඇන්ඩ්රොයිඩ්

ප්‍රධාන නූල් මත දිගු/බර සැකසීම

පියවරෙන් පියවර දෝශ නිරාකරණ ප්‍රවාහය:

  1. වාර්තාව එකතු කරන්න. බිඳ වැටීම් ලොගය, දෝෂ පණිවිඩය සහ හැකි නම් එය ප්‍රතිනිෂ්පාදනය කිරීමට පියවර ගන්න.
  2. AI සන්දර්භය දෙන්න. මට කියන්න දෝෂය පමණක් නොව, අදාළ කේතය සහ එය කඩා වැටුණු දේ.
  3. විය හැකි හේතු විමසන්න. "බොහෝ දුරට ඉඩ ඇති හේතු 3 සහ එක් එක් සත්‍යාපනය කරන්නේ කෙසේදැයි මට කියන්න."
  4. තහවුරු කරන්න. කේතය සහ පරීක්ෂා කිරීමේදී යෝජිත හේතුව තහවුරු කරන්න; අනුමාන කරලා ඒක හදන්න එපා.
  5. එය නිවැරදි කර නැවත පරීක්ෂා කරන්න. දෝෂය ඇත්ත වශයෙන්ම නැති වී ඇති අතර නව දෝෂ උත්පාදනය නොවන බව පරීක්ෂා කරන්න.
ඉඟිය: ක්‍රෂ් ලොගය AI වෙත ලබා දීමේදී, අදාළ කේත කොටසද ඇතුළත් කරන්න. AI සාමාන්‍ය පුරෝකථනය කරන්නේ තොග හෝඩුවාවක් සමඟ පමණි; ඔබ කේතය දකින විට, නිවැරදි රේඛාව සහ සැබෑ හේතුව සොයා ගැනීමේ සම්භාවිතාව විශාල ලෙස වැඩි වේ. සන්දර්භය රෝග විනිශ්චය කිරීමේ ගුණාත්මකභාවය තීරණය කරයි.

පුද්ගලික දත්ත උගුල

බිඳ වැටීම් ලොග සහ ලොග බොහෝ විට පරිශීලක දත්ත අඩංගු වේ: ඊමේල්, පරිශීලක හැඳුනුම්පත, ස්ථානය, පෝරම අන්තර්ගතය පවා. මෙම වාර්තාව AI වෙත ඇලවීම තෙවන පාර්ශවයට පුද්ගලික දත්ත කාන්දු වන අතර එය KVKK / GDPR උල්ලංඝනය කිරීමකි. පටිගත කිරීම ඉදිරිපත් කිරීමට පෙර පුද්ගලික ප්‍රදේශ හිස් කරන්න (වෙස්මුහුණු කරන්න). එසේම, මුල සිටම ඔබගේ යෙදුමේ ලඝු-සටහන් වෙත පුද්ගලික දත්ත ලිවීමට ප්‍රවේශම් වන්න; හොඳ ලොගයක් ගැටලුව විස්තර කරන නමුත් අනන්‍යතාවය හෙළි නොකරයි.

අවවාදයයි: AI විසින් යෝජනා කරන ලද නිවැරදි කිරීම “දෝෂය නිශ්ශබ්ද” කළ හැකි නමුත් මූල හේතුව විසඳන්නේ නැත. උදාහරණයක් ලෙස, NullPointerException එකක් null check එකකින් එතීමෙන් බිඳවැටීම නවත්වනු ඇත, නමුත් අගය ශුන්‍ය වන්නේ මන්දැයි ඔබ සොයා නොගන්නේ නම් සැබෑ තාර්කික දෝෂය දිගටම පවතිනු ඇත. රෝග ලක්ෂණයට නොව රෝගයට ප්‍රතිකාර කරන්න.

මූල හේතුව විශ්ලේෂණය

වෘත්තීය නිදොස්කරණයේ අරමුණ දෝෂය නිශ්ශබ්ද කිරීම නොව මූල හේතුව සොයා ගැනීමයි. මම AI ගෙන් ඇසුවෙමි "මෙය ශුන්‍ය විය හැක්කේ ඇයි, දත්ත ප්‍රවාහයේදී එය නැති වී ඇත්තේ කොතැනින්ද?" "මම මේක නිශ්ශබ්ද කරන්නේ කොහොමද?" ඒක අහනවාට වඩා ගොඩක් වටිනවා. මූල හේතුව සොයාගත් පසු, එකම දෝෂයේ වෙනස්කම් දුසිම් ගනනක් එකවර විසඳනු ලැබේ. AI මෙම දාම තර්කනයට හොඳ ය: ආදානයේ සිට ප්‍රතිදානය දක්වා දත්ත අනුගමනය කර එය බිඳ වැටෙන්නේ කොතැනදැයි සිතා බැලීමට එය අසන්න.

කුඩා නඩු තුනක්

නඩුව 1 - විනාඩි 10 කින් පැය 2 වැඩ. සංවර්ධකයෙකු නිශ්චිත Samsung ආකෘතියක් මත පමණක් කඩා වැටුණු දෝෂයක් සෙවීමට පැය 2ක් ගත කළේය. ක්‍රෂ් ලොගය (පුද්ගලික ප්‍රදේශ ඉවත් කිරීම) AI වෙත ලබා දුන්නා; YZ පැවසුවේ දෝෂය එම උපාංගයේ වෙනස් කැමරා විභේදනයක් සමඟ සිදුවන මතකය පිටාර ගැලීමකට යොමු වන බවයි. හෝඩුවාවක් එක්ක විනාඩි 10කින් හේතුව හොයාගත්තා. AI සෙවීම වේගවත් කළේය, මිනිසා විසඳුම සත්‍යාපනය කළේය.

නඩුව 2 - නිශ්ශබ්ද වූ දෝෂය නැවත පැමිණ ඇත. එක් කණ්ඩායමක් එය අල්ලා ගැනීමට AI යෝජනාවක් භාවිතා කිරීමෙන් පුනරාවර්තන බිඳවැටීමක් නිහඬ කළේය. බිඳවැටීම නතර වූ නමුත් පරිශීලකයන් "දත්ත සුරැකෙන්නේ නැත" යනුවෙන් පැමිණිලි කිරීමට පටන් ගත්හ; මක්නිසාද යත් සැබෑ ගැටළුව (දත්ත සමුදා සම්බන්ධතාවය) තවමත් තිබූ බැවින්, එය නොපෙනී ගොස් ඇත. මූල හේතුව සොයාගත් පසු, බිඳවැටීම සහ දත්ත නැතිවීම යන දෙකම විසඳා ඇත. පාඩම: නිශ්ශබ්ද කිරීම විසඳුමක් නොවේ.

නඩුව 3 - ලොගයේ දත්ත කාන්දු විය. යෙදුමේ බිඳවැටීම් ලොග තුළ පරිශීලකයින්ගේ සම්පූර්ණ නම් සහ දුරකථන අංක ලියා ඇති බව විගණනයකදී සොයා ගන්නා ලදී. සංවර්ධකයින් විසින් මෙම ලඝු-සටහන් AI සහ ස්ථාවර දෝෂ වලට නිතිපතා අලවා ඇත; එබැවින් පුද්ගලික දත්ත මාස ගණනාවක් තිස්සේ පිටතට යමින් පවතී. ලඝු-සටහන් ආවරණය කර ක්‍රියාවලිය නිවැරදි කරන ලදී. පාඩම: නිදොස් කිරීමේදී පවා රහස්‍යභාවය අදාළ වේ.

දුර්වල ක්ෂණික / ශක්තිමත් විමසුම

දුර්වල විමසුම: "මෙම දෝෂය සිදුවන්නේ ඇයි? [ස්ටැක් හෝඩුවාවක්]"

ප්‍රබල විමසුම: "මෙම බිඳ වැටීම මගේ ඇන්ඩ්‍රොයිඩ් යෙදුමේ සිදු වේ. සන්දර්භය:- කරන අතරතුර: පරිශීලක නිෂ්පාදන විස්තර වලින් කරත්තයට එකතු කිරීම- සමහර උපාංගවල පමණක්, අඩු RAM මාදිලි- ආශ්‍රිත කේතය: [ViewModel සහ Repository part]- බිඳ වැටීම් ලොගය (පුද්ගලික දත්ත ඉවත් කර ඇත): [stack trace]List 3 බොහෝ දුරට ඉඩ ඇති මූල හේතු 2 සඳහා මම නිවැරදි කරන්නේ කෙසේද? නිශ්ශබ්ද කිරීම) ඔබට විශ්වාස නැති තැන ඔබේ උපකල්පනය සඳහන් කරන්න

පිටපත් කළ හැකි සැකිලි

බිඳ වැටීම් විශ්ලේෂණ අච්චුව:"පහත බිඳවැටීම විශ්ලේෂණය කරන්න. සන්දර්භය: [ඔබ කරන්නේ කුමක්ද, කුමන උපාංගය/අනුවාදය]. අදාළ කේතය: [කේතය]. බිඳවැටීම් ලොගය (පුද්ගලික දත්ත හිස් කර ඇත): [ට්‍රේස්]. එක් එක් සඳහා බොහෝ දුරට ඉඩ ඇති මූල හේතු සහ සත්‍යාපනය + ස්ථිර විසඳුම් දෙන්න. රෝග ලක්ෂණය නිශ්ශබ්ද කරන ක්‍රියා මාර්ග සලකුණු කරන්න."

මූල හේතුව අච්චුව: "මෙම අගය අනපේක්ෂිත ලෙස [ශුන්‍ය/අසත්‍ය] පැමිණේ. ආදානයේ සිට මේ දක්වා දත්ත ප්‍රවාහය අනුගමනය කරන්න: එය නැති වී හෝ දූෂිත විය හැක්කේ කොතැනින්ද? එක් එක් අදියරේදී මා පරීක්ෂා කළ යුත්තේ කොතැනදැයි මට කියන්න. [කේතය]"

ලොග් කියවීමේ අච්චුව: "මෙම ලොග් ප්‍රතිදානය අර්ථකථනය කරන්න: අනුපිළිවෙලින් සිදු වූ සිදුවීම් මොනවාද, අසාමාන්‍යතාව කොතැනද, දෝෂයට පෙර අවසාන සෞඛ්‍ය සම්පන්න පියවර කුමක්ද? [ලොග් - පුද්ගලික දත්ත ඉවත් කරන ලදී]"

ප්‍රතිනිෂ්පාදන අච්චුව: "මෙම දෝෂය විශ්වාසදායක ලෙස ප්‍රතිනිෂ්පාදනය කිරීමට මා උත්සාහ කළ යුතු පියවර, උපාංග ප්‍රකාශ සහ දත්ත මොනවාද? සම්භාවිතාව අනුව දෝෂය අවුලුවාලිය හැකි කොන්දේසි ලැයිස්තුගත කරන්න. [විස්තරය]"

පොදු වැරදි

  • සන්දර්භය-නිදහස් තොග හෝඩුවාවක් ලබා දීම. අදාළ කේතය සහ අවස්ථාව නොමැතිව, AI සාමාන්‍ය පුරෝකථනය කරයි.
  • ලොග් සමඟ පුද්ගලික දත්ත AI වෙත ඇලවීම. රහස්‍යභාවය උල්ලංඝනය කිරීම; පළමුව වෙස්මුහුණු.
  • රෝග ලක්ෂණය නිශ්ශබ්ද කරන්න. ට්‍රයි-කැච් සමඟ බිඳවැටීම සැඟවීම මූල ගැටලුව ඉතිරි කර නව ගැටලු ඇති කරයි.
  • පළමු යෝජනාව සත්‍යාපනය නොකර යෙදීම. AI රෝග විනිශ්චය උපකල්පනයකි; කේතයෙන් තහවුරු කරන්න.
  • එය ඉමුලේටරය තුළ ප්‍රතිනිෂ්පාදනය කිරීමට උත්සාහ කරයි. සමහර දෝෂ සැබෑ උපාංගයේ/තත්ත්වයේ පමණක් දිස්වේ.
  • නිවැරදි කිරීමෙන් පසු නැවත පරීක්ෂා නොකිරීම. නිවැරදි කිරීම වෙනත් දෙයක් කැඩී තිබිය හැක; පසුබෑම පරීක්ෂා කරන්න.

සාරාංශයකින්

AI විශිෂ්ඨ වන එක් අංශයක් වන්නේ බිඳ වැටීම් ලොග කියවීම සහ විය හැකි හේතු වර්ග කිරීම; සන්දර්භය ලබා දෙන විට රෝග විනිශ්චය කිරීමේ ගුණාත්මක භාවය බෙහෙවින් වැඩි දියුණු වේ. නමුත් අවසාන රෝග විනිශ්චය සහ නිවැරදි කිරීම මිනිසාට අයත් වේ: AI හි යෝජනාව කල්පිතයක් වන අතර, එය කේතය සහ පරීක්ෂණ මගින් තහවුරු කර ඇත. අරමුණ රෝග ලක්ෂණය නිශ්ශබ්ද කිරීම නොව මූල හේතුව විසඳීමයි; නිශ්ශබ්ද වූ දෝෂය සාමාන්‍යයෙන් වෙනත් ආකාරයකින් නැවත පැමිණේ. බිඳ වැටීම් ලොගවල පුද්ගලික දත්ත අඩංගු විය හැක; එය AI වෙත ලබා දීමට පෙර එය මාස්ක් කරන්න සහ මුල සිටම ඔබගේ ලොග් වල පුද්ගලික දත්ත ලියන්න එපා.

යෙදුම් කාර්යය

ඔබ සතුව ඇති බිඳ වැටීම් ලොගයක් ගන්න (හෝ ඔබ AI වෙතින් උත්පාදනය කරන නියැදිය), එහි ඇති ඕනෑම පුද්ගලික/විශේෂ දත්ත වසන් කර, "Crash analysis template" සමඟින් එය AI වෙත ලබා දෙන්න. AI ලැයිස්තු සැබෑ නිවැරදි කිරීම් සහ නිශ්ශබ්ද කරන මූල හේතු මොනවාදැයි වෙන්කර හඳුනා ගන්න. ඔබ තෝරාගත් ස්ථිර විසඳුම යොදන්න සහ දෝෂය නැති වී ඇති බවත් නව ගැටළු මතු නොවන බවත් තහවුරු කරන්න.

පිරික්සුම් ලැයිස්තුව

  • [ ] මම අදාළ කේතය සහ අවස්ථා සන්දර්භය සමඟ බිඳ වැටීම් ලොගය ලබා දී ඇත
  • [ ] මම ලොග් වල පුද්ගලික/විශේෂිත දත්ත වසන් කළෙමි
  • [ ] මම AI ගෙන් ඇසුවේ මූල හේතුව සහ ස්ථිර පිළියමක් මිස නිහඬ කිරීම නොවේ
  • [ ] මම කේතය සහ පරීක්ෂණයේදී රෝග විනිශ්චය තහවුරු කළෙමි, මම එය අන්ධ ලෙස යෙදුවේ නැත
  • [ ] නිවැරදි කිරීමෙන් පසු, මම දෝෂය පහව ගොස් ඇති අතර ප්‍රතිගාමී වීමක් නොමැති බව පරීක්‍ෂා කළෙමි
  • [ ] මම මගේ යෙදුම එහි ලොග් වල පුද්ගලික දත්ත ලියන්නේ නැති බව පරීක්ෂා කළා