এক্সকোড ডিবাগার বস্তুগুলি মুদ্রণ করে না এবং শূন্য হয় না, যখন তারা হয় না


165

এক্সকোড কোনও বস্তু দিয়ে মুদ্রণের চেষ্টা করার সময় একটি ত্রুটি দেখায় po <objectName>, তবে কেবল একটি প্রকল্পের জন্য।

স্ক্রিনশট

ত্রুটি: কাঠামোগুলি কার্যকর করতে পারেনি: ভেরিয়েবলের আকার <ভারমনাম> এক্সিকিউটে আউট হওয়া ভ্যালুঅবজেক্টের আকারের সাথে একমত নয়, প্রিপারেটোএক্সেকিউটজাইট এক্সপ্রেসন করতে পারেনি

এক্সকোড ডিবাগারও সমস্ত বস্তুকে nil( selfবাদ দেওয়া) হিসাবে প্রদর্শন করে , যখন সেগুলি না থাকে ( NSLogছবিতে প্রদর্শিত সঠিক আউটপুট দেখায়)। আমি জানি না প্রকল্পটিতে কী সমস্যা হয়েছে। অন্য প্রতিটি প্রকল্প সূক্ষ্ম কাজ করে।

কোন ধারণা কি হতে পারে? (প্রকল্পটি পরিষ্কার করার কোনও প্রভাব ছিল না))


আমার কাছে এটি একরকম পয়েন্টার ইস্যুর মতো শোনাচ্ছে তবে আমি সত্যই নিশ্চিত যে পুরোপুরি নিশ্চিত। আপনি কী করতে / সফল করার চেষ্টা করছেন?
ব্যবহারকারী 2967030

3
ত্রুটিটি সেই প্রকল্পের প্রতিটি বস্তুর উপর ঘটে । এমনকি NSStringব্রেকপয়েন্টের উপরে একটি লাইন তৈরি করেছে!
বাইনারি

1
(কিন্তু চেষ্টা করার জন্য ধন্যবাদ ত্রুটি বার্তা যোগ করা হয়েছে; হিসাবে প্রশ্নে বললেন, পরিস্কার কিছু পরিবর্তন করবেন
Binarian

3
আপনি কি অপটিমাইজেশন ছাড়াই নির্মানের বিষয়ে নিশ্চিত? (-O0)
আইসিসির

1
অপ্টিমাইজেশানগুলি কেবলমাত্র প্রকল্পের সেটিংসে নয়, লক্ষ্যগুলিতেও সেট করা যেতে পারে। আমি আটকে ছিলাম :(
তুলসী

উত্তর:


269

আপনি কি "রিলিজ মোডে" না তা নিশ্চিত?

যদি আপনি পরিবর্তনশীল মানগুলি দেখতে চান তবে আপনাকে "ডিবাগ মোড" এ থাকতে হবে (শুরু / স্টপ বোতামগুলির নিকটে উপরের বাম কোণে আপনার প্রকল্পের নামের উপর ক্লিক করুন, তারপরে "স্কিম সম্পাদনা করুন ...", তারপরে "রান করুন" সেটিংস, তারপরে "" তথ্য "ট্যাব, তারপরে" বিল্ড কনফিগারেশন "Here এখানে" ডিবাগ "সেট করুন it


3
আমার কেবল একটি কনফিগারেশন আছে, কনফিগারেশনটি কীভাবে পরিবর্তন করা যায় যাতে এটির মতো হয় debug configuration?
বাইনারি

2
আহ ঠিক আছে, আমি একটি খালি প্রকল্প তৈরি করেছি এবং এখন সমস্ত পার্থক্য দেখতে পাচ্ছি Build Settings, স্থাপনার সম্পত্তি Strip debug symbols during copyহ্যাঁ সেট করা হয়েছিল।
বাইনারি

16
@ Alex1987 আমি সেট Strip debug symbols during copyকরতে NOএবং Optimization Levelকরতে None -O0প্রকল্পেBuild Settings
Binarian

32
দুর্ভাগ্যক্রমে, নির্দিষ্ট পরিস্থিতিতে lldb এটি করে চলেছে যখন ডিবাগ মোডে, অপ্টিমাইজেশন বন্ধ থাকায় এবং ডিবাগিং প্রতীক উপস্থিত রয়েছে। বাগ রিপোর্ট.অ্যাপল
ডট

4
একই সমস্যা ছিল - অপ্টিমাইজেশনের স্তরটি "কিছুই নয়"। সমস্যাটি ছিল যে লিংক-টাইম অপ্টিমাইজেশন (এলটিও) ডিবাগ মোডের জন্য "হ্যাঁ" সেট করা হয়েছিল।
pi3

38

আমি ডিবাগ কনফিগারেশনের জন্য "কিছুই নয়" এ "অপ্টিমাইজেশন স্তর" সেট করেছি এবং এটি সমস্যার সমাধান করেছে।


2
মজার, এটি কাজ করে না। আমি এর বিপরীতে করলাম। আমি স্যুইচ করেছি Fastest, Smallest[-Os]এবং এটি কাজ করে।
ন্যাট হাট

প্রচুর বিভিন্ন প্রস্তাবনা, কিন্তু এটি একটি (কারও কাছে ডিবাগ অপ্টিমাইজেশান সেট করে) এটি আমার জন্য স্থির করে।
দেজল

29

নিশ্চিত হয়ে নিন যে আপনার স্কিম সেটিংসে ঠিকানা স্যানিটাইজারটি বন্ধ রয়েছে। অ্যাড্রেস স্যানিটাইজার ডিবাগারটির সাথে ভাল কাজ করে না।

  1. সম্পাদনা প্রকল্পে (পণ্য >> স্কিম >> সম্পাদনা প্রকল্প) যান, রান নির্বাচন করুন এবং ডায়াগনস্টিকস ট্যাবে যান tab
  2. "ঠিকানা স্যানিটাইজার সক্ষম করুন" বন্ধ রয়েছে তা নিশ্চিত করুন Make

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


4
এটি আমার জন্য সমাধান ছিল। স্পষ্টতই অনেক কারণ রয়েছে যা ঘটতে পারে।
ম্যানরোয়ে

16

দেখে মনে হচ্ছে সবার নিজস্ব সমাধান আছে।

আমার জন্য, আমি ব্যবহার Objective-Cএবং Swiftএকই সময়ে।

প্রথমত, যান TARGETS -> Build Settingsএবং অনুসন্ধান করুনcode generation

আপনি পাবেন Apple LLVM 6.0 এবং Swift Compiler

তাদের পরিবর্তন করুন Optimization Levelসব None, তারপর ডিবাগ, আপনি মান খুঁজে পেতে পারেন নাnil

আশ্চর্যরূপে একবার আপনি মানটি দেখতে পাবেন, আপনি এই সমস্যাটিকে স্থায়ীভাবে সমাধান করুন, তারপরে আপনি Optimization Levelএটি আগের হিসাবে এটি পরিবর্তন করতে পারেন ।


11

এটির অন্যান্য উপায়ও রয়েছে। আমার জন্য এটি ছিল কারণ "অন্যান্য সি পতাকাগুলি" মানটি "-O2" এ সেট করা হয়েছিল এমনকি ডিবাগ বিল্ডের জন্যও। ডিবাগ বিল্ডের জন্য এটি বন্ধ করে দেওয়া সমস্যার সমাধান করেছে।


9

ফিল্টার করা ডিবাগ আউটপুট

আমার জন্য, এক্সকোড ডিবাগার আউটপুট ফিল্টার করছে। আপনার আউটপুট সেটিংস ডিবাগার আউটপুট বা সমস্ত আউটপুট নিশ্চিত করুন


6

আমি সবেমাত্র এই সমস্যাটির মুখোমুখি হয়েছি এবং এটি দেখতে পেয়েছি যে এটি Deployment Postprocessing = YESসেটিংস নির্মাণের কারণে ।

NOএটি স্থির করে এটিকে পরিবর্তন করা হচ্ছে , নীচের স্ক্রিনশটে যেমন দেখা যাচ্ছে:

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

এক্সকোড সংস্করণ: OSX 10.9.5 এ 6.0.1 (6A317)


5

আমি কেবল একটি অনুরূপ সমস্যার মধ্যে দৌড়েছি: এক পর্যায়ে হঠাৎ করে এক্সকোড ডিবাগার কিছু বস্তুর প্রকার বিশেষত এনএসএসআরটিংগুলি (নাল) হিসাবে মুদ্রণ করে যদিও সেগুলি একটি মান দিয়ে শুরু করা হয়েছিল। মাধ্যমে মুদ্রিত

NSLog(@"String value: %@", myString);

বস্তুর জন্য সঠিক মান প্রদর্শিত হয়েছিল।

বিভ্রান্তিকর! সমস্যার সমাধান করা বরং সহজ ছিল: আমি সবেমাত্র এক্সকোডটি বন্ধ করে দিয়ে আমার কম্পিউটার পুনরায় চালু করেছি। আমি এক্সকোড পুনরায় চালু করার পরে আবার সবকিছু ঠিকঠাক কাজ করে :)।


5

Link-Time Optimization = Noবিল্ড সেটিংসে ডিবাগ মোডের জন্য নিশ্চিত হন।


আমি কেবলমাত্র আমার গতিশীল কাঠামো তৈরির সেটিংসে এক্সকোড 8 এ এই সমস্যাটি পূরণ করি! Thx
vmeyer

3
  1. উত্সযুক্ত ডেটা মুছুন
  2. বেশ এক্সকোড / পুনঃসূচনা
  3. পরিষ্কার প্রকল্প

এটাই আমার জন্য লেগেছে।


2

এখানে সমাধানগুলি সেই সাথে বাগটিও ঠিক করে দেবে যেখানে আপনি error: <EXPR>:1:1: error: use of unresolved identifierপ্রতিবার poভেরিয়েবলের চেষ্টা করার সময় দেখেন ।

আমার জন্য সমাধানটি ছিল Build Settingsঅনুসন্ধান এবং অনুসন্ধান Optimization Levelএবং প্রতিটি Debugসেটিংস সেট করা আছে তা নিশ্চিত করা None


এটি আসলে আমার জন্য এটি স্থির করেছে। সেটিংটি অক্ষম করার জন্য নেতিবাচকটি কী?
জেস্পার

1

বিল্ড সেটিংয়ে "অন্যান্য সি পতাকা" এ যান এবং -o2 থেকে -O0 ডিবাগ মান সেট করুন


0

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

সুতরাং আমি মনে করি যা ঘটেছিল তা হ'ল রিলিজ মোডে তৈরি হওয়ার পরে সবকিছুই বিকাশে পুনরায় কম্পাইল হয় না এবং তাই lldb চিহ্নগুলি সঠিকভাবে পড়তে পারে না। পরিস্কার করার পরে এবং পুনর্নির্মাণের বিকাশের পরে এটি আমার জন্য কাজ করেছিল।


-3

বাস্তবতাটি হ'ল সিস্টেমটি বাক্সের বাইরে কাজ করা উচিত এবং বিভিন্ন সেটিংসের একাধিক পরিমাণের লিঙ্কের কারণে না হয়, এমন একটি বিন্দুতে যে জিনিসগুলি আপনার জন্য কাজ করতে পারে বা না পারে।

কেন সিস্টেম সর্বদা ডিবাগ করার অনুমতি দেয় না যখন ডিবাগ মোডে এমন রহস্য যা কেবলমাত্র অ্যাপলই উত্তর দিতে পারে (যদি তারা যত্নশীল হয়, তবে আমি সন্দেহ করি যে তারা এটি করে)।

সর্বোপরি, ডিবাগ / নন-ডিবাগের মধ্যে পার্থক্যটি মেটাডেটা সহ অতিরিক্ত সারণী হবে যা কেবল স্মৃতি / ডিস্কের স্থান পূরণ করে।

আপনি যদি সরাসরি সিমুলেটর বা কোনও ডিভাইসের বিপরীতে সংকলন করে থাকেন তবে আপনি সেই অতিরিক্ত মেগাবাইটের যত্ন নেবেন না।

সুতরাং আমাদের কেবলমাত্র একটি খুব বেসিক এবং সাধারণ জিনিস করতে অতিরিক্ত লুপগুলি চালানো দরকার যা আমি গত শতাব্দীর পর থেকে জেনেছি এমন সমস্ত ides

এবং যোগ করার জন্য, আমার জন্য "ডিবাগ" -তে লিঙ্ক-টাইম অপ্টিমাইজেশানটি "মনোলিথিক" থেকে "না" (এক্সকোড 8) এ কী বদলেছিল তা আমার জন্য।


Xcode থে ইচ্ছা বাক্সে, তখন স্বয়ংসম্পূর্ণ এবং অন্যান্য বৈশিষ্ট্য কাজ আউট প্যাকেজ ম্যানেজার, কম্পাইল বার বিশাল, ইত্যাদি হয়
zirinisp
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.