কীভাবে "ডিবাগ করতে malloc_error_break এ একটি ব্রেকপয়েন্ট নির্ধারণ করুন"


126

আমি আমার অ্যাপ্লিকেশন ক্র্যাশ না করে এ জাতীয় প্রচুর কনসোল আউটপুট পাচ্ছি:

malloc: 0xc6a3970 অবজেক্টের জন্য ত্রুটি: পয়েন্টারটি মুক্ত হওয়ায় বরাদ্দ দেওয়া হয়নি * ডিবাগ করার জন্য malloc_error_break এ একটি ব্রেকপয়েন্ট সেট করুন

কোন বস্তু বা পরিবর্তনশীল প্রভাবিত হয়েছে তা আমি কীভাবে খুঁজে বের করতে পারি?

আমি এটির মতো প্রতীকী ব্রেকপয়েন্টটি সেট করার চেষ্টা করেছি তবে এটি কখনও থামে না:

এখানে চিত্র বর্ণনা লিখুন


1
আমি সাফারি পরিদর্শন অক্ষম করে এই সমস্যাটি সমাধান করি। stackoverflow.com/a/43885754/6521116
ক্রিস Roofe

এর অন্যতম কারণ হ'ল একটি ফাংশন / পদ্ধতি যা কোন বস্তুকে ফেরত দেবে বলে মনে করা হয় এবং এটি ফাংশনটির শেষে পৌঁছায় এবং কোনও কিছুই ফেরত দেয় না।
Xofo

উত্তর:


136

ব্রেকপয়েন্ট ন্যাভিগেটর (দেখুন-> ন্যাভিগেটর-> ব্রেকপয়েন্ট ন্যাভিগেটর বা ⌘7 দেখান) নীচে বাম কোণে প্লাস বোতামটি ক্লিক করে এবং "সিম্বলিক ব্রেকপয়েন্টটি যুক্ত করুন" নির্বাচন করে malloc_error_break () এ একটি ব্রেকপয়েন্ট সেট করুন। যে পপআপটি আসবে malloc_error_breakতাতে প্রতীক ক্ষেত্রটি প্রবেশ করুন, তারপরে সম্পন্ন ক্লিক করুন।

সম্পাদনা: ওপেনফ্রোগ একটি স্ক্রিনশট যুক্ত করেছে এবং ইঙ্গিত দিয়েছে যে আমি আমার উত্তর পোস্ট করার পরে তিনি ইতিমধ্যে এই পদক্ষেপগুলি সাফল্য ছাড়া চেষ্টা করেছেন। এই সম্পাদনাটি দিয়ে, আমি কী বলব তা নিশ্চিত নই। আমি নিজেও কাজ করতে ব্যর্থ হতে দেখিনি এবং সত্যই আমি সর্বদা malloc_error_break সেটটিতে ব্রেকপয়েন্ট রাখি।


2
এটি আমার জন্য কাজ করেছে (মডিউল ব্যতীত)। আমার জন্য সমস্যার কারণটি ছিল যে আমার UIImageকোনও ফাইল ব্যাক হয়েছিল এবং আমি আলাদা চিত্র দিয়ে ফাইলটি ওভাররাইট করছিলাম। আমি যখন UIImagePNGRepresentationমূল চিত্রটি ডেকেছিলাম তখন এটি একটি ত্রুটি ঘটায় (ফাইলটি আসলে ওভাররাইট করার সময় নয়)।
রবার্ট

আমি ⌘7বারের নীচের বাম কোণে একটি প্লাস বোতাম পাচ্ছি না ... সম্ভবত আপনি বোঝাতে চেয়েছেন ⌘8?
স্কটিব্ল্যাডেস

শর্টকাট অনুমান করছে যে স্কটিব্লেডস পরিবর্তন হয়েছে। আমি এই উত্তরটি 8 বছর এবং 7 টি বড় এক্সকোড সংস্করণ আগে লিখেছি ...
অ্যান্ড্রু ম্যাডসেন

@ অ্যান্ড্রুম্যাডসেন কোনও উদ্বেগ নয়, এটি সম্পাদনা করার কোনও অর্থ আছে কিনা তা পরীক্ষা করে দেখুন।
স্কটিব্ল্যাডেস

46

আপনার স্ক্রিনশটে, আপনি কোনও মডিউল নির্দিষ্ট করেন নি: "libsystem_c.dylib" সেট করার চেষ্টা করুন

এখানে চিত্র বর্ণনা লিখুন

আমি এটি করেছি এবং এটি কাজ করে: ব্রেকপয়েন্টটি এখানে থামে (যদিও স্ট্যাকট্রেস প্রায়শই কিছু অস্পষ্ট সিস্টেমের লাইব থেকে উত্থিত হয় ...)


7
মডিউল মনে হয় NAME iOS এ ভিন্ন, এটা: libsystem_malloc.dylib। ব্রেকপয়েন্ট আমার জন্য মডিউল নির্দিষ্ট না করে কাজ করে।
নেস্টর

6

এক্সকোড নিয়েও আমার একই সমস্যা ছিল। আপনার দেওয়া পদক্ষেপগুলি আমি অনুসরণ করেছি এবং এটি কার্যকর হয়নি। আমি পাগল হয়ে গেছি কারণ প্রতিটি ফোরামে আমি দেখেছি, এই সমস্যার জন্য সমস্ত সংকেত আপনি দিয়েছেন। আমি অবশেষে দেখেছি আমি malloc_error_break এর পরে একটি স্থান রেখেছি, আমি এটিকে দমন করেছি এবং এখন এটি কার্যকর হয়। একটি বোবা সমস্যা তবে সমাধানটি যদি কাজ না করে তবে নিশ্চিত হয়ে নিন যে আপনি malloc_error_break এর আগে এবং পরে কোনও স্থান রাখেন নি।

আশা করি এই বার্তাটি সাহায্য করবে ..


4

আমি অনুমতি দিয়েছিলাম আমাকে কিছু ফোল্ডারে (বিশেষত / usr / bin /) লিখতে হবে না এবং সমস্যাটি সৃষ্টি করেছিল। আমি ডিস্ক ইউটিলিটিটি খোলার মাধ্যমে এবং ম্যাকিনটোস এইচডি ডিস্কে 'মেরামত ডিস্ক অনুমতি' চালিয়ে এটি ঠিক করেছি।


ধন্যবাদ, এটি আমার বোর্কড মেশিনটি স্থির করেছে।
ম্যাট ফ্লেচার

2

আমি কাছের সাফারি ইন্সপেক্টর দ্বারা এটি সমাধান। আমার পোস্ট দেখুন । আমি যখন মাঝে মাঝে আমার অ্যাপটি পরীক্ষার জন্য চালিত করি তখন আমি শব্দটি পেয়েছি, তারপরে আমি অটো ইন্সপেক্টরকে দিয়ে সাফারিটি খুলি, এর পরে, আমি আমার অ্যাপটিতে কিছু পদক্ষেপ নিই, তখন এই সমস্যাটি ট্রিগার হয়ে গেছে।

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.