এখানে আরও একটি সমাধান রয়েছে যা পূর্বের মতো মার্জিত নয়, তবে আপনি যদি ব্যতিক্রম ব্রেকপয়েন্ট বা হ্যান্ডলারগুলি না যোগ করেন তবে এটি কেবল যাওয়ার একমাত্র উপায় হতে পারে।
যখন অ্যাপ ক্রাশ হয়ে যায় এবং আপনি আপনার কাঁচা প্রথম থ্রো কল স্ট্যাক (হেক্স নম্বরগুলিতে) পেয়ে যান, এক্সকোড কনসোলে টাইপ করুন info line *hex
(তারকা এবং 0x
হেক্স স্পেসিফারকে ভুলে যাবেন না ), উদাহরণস্বরূপ:
(gdb) info line *0x2658
Line 15 of "path/to/file/main.m" starts at address 0x25f2 <main+50>
and ends at 0x267e <main+190>.
আপনি যদি এলএলডিবি ব্যবহার করে থাকেন তবে আপনি টাইপ করতে পারেন image lookup -a hex
(এই পরিস্থিতিতে তারা ছাড়া), এবং আপনি একই রকম আউটপুট পান।
এই পদ্ধতির সাহায্যে আপনি আপনার ফাংশনটিতে নিক্ষেপ স্ট্যাকের উপরে (প্রায় 5-7 সিস্টেম ব্যতিক্রম প্রচারকারী থাকবেন) উপরের দিকে যেতে পারেন যা ক্রাশের কারণ হয়ে দাঁড়িয়েছে এবং সঠিক ফাইল এবং কোডের লাইন নির্ধারণ করতে পারে।
এছাড়াও, অনুরূপ প্রভাবের জন্য আপনি টার্মিনালে atos ইউটিলিটি ব্যবহার করতে পারেন, কেবল টাইপ করুন:
atos -o path/to/AplicationBundle.app/Executable 0xAdress1 0xAdress2 0xAdress3 ...
এবং আপনি প্রতীকী স্ট্যাক ট্রেস পাবেন (কমপক্ষে আপনার ডিবাগ প্রতীক রয়েছে এমন ফাংশনগুলির জন্য)। এই পদ্ধতিটি আরও পছন্দসই, কারণ আপনার প্রতিটি ঠিকানা ঠিকানা নেই info line
, কেবল কনসোল আউটপুট থেকে অ্যাড্রেসগুলি অনুলিপি করুন এবং সেগুলি টার্মিনালে আটকান।