স্থানীয় বা আর্গুমেন্টের মান অর্জন করতে পারে না কারণ এটি এই নির্দেশিকা পয়েন্টারে উপলভ্য নয়, সম্ভবত এটি এটিকে অপ্টিমাইজ করা হয়েছে


211

অনিরাপদ ব্লকের ফাংশনটির একটি আর্গুমেন্টে ভিজ্যুয়াল স্টুডিও 2010 হত্যার (অন্য কোনও শব্দ নেই) ডেটা। কী কারণে এই ত্রুটি হতে পারে? নিম্নলিখিত বার্তাটি ডিবাগার দ্বারা দেখানো হয়েছে।

Cannot obtain value of local or argument as it is not available at this instruction pointer, possibly because it has been optimized away.

2
আমার ঠিক একই সমস্যা এবং আমি ডিবাগ বিল্ডটি ব্যবহার করছি। Cannot obtain value of local or argument '<this>' as it is not available at this instruction pointer, possibly because it has been optimized away. System.Threading.Tasks.TaskExceptionHolder
20'12

19
ওহো, আমি সবেমাত্র ভুল করে নির্বাচিত প্রকাশ করেছি ..
ড্যানিয়েল লিটল

আমার ভিএস 2017 এ সমস্যা হচ্ছে এবং আমি নীচের পোস্টগুলিতে সমস্ত নির্দেশাবলী অনুসরণ করেছি। অন্য কোন বিকল্প আছে?
ম্যাট ডব্লু

মেনু বিল্ড -> কনফিগারেশন পরিচালককে ভুলে যাবেন না। কনফিগারেশনটি সেখানে ডিবাগে সেট করা দরকার বা আপনি এখনও সমস্যাটি পান।
বব ক্লিগ

উত্তর:


344

প্রকল্পের বৈশিষ্ট্যগুলিতে এবং বিল্ডের নীচে যান "" অনুকূলিতকরণ কোড "চেকবক্সটি চেক না করা হয়েছে তা নিশ্চিত করুন।

এছাড়াও, "ডিবাগ তথ্য" ড্রপডাউনটিকে উন্নত বিকল্পগুলিতে (সম্পূর্ণরূপে ট্যাবটির আওতায়) "সম্পূর্ণ" এ সেট করুন।


128
প্রথমে পরীক্ষা করুন যে বিল্ড কনফিগারেশনটি ডিবাগ, প্রকাশ নয়।
ApceH ভণ্ডামি

যাইহোক, আপনি যদি এটি রিলিজ মোডে পরীক্ষা করতে চান তবে আপনি "ডিবাগার.ল্যাঞ্চ (); কোডে
জেসন

উভয় পদক্ষেপ এবং "রিলিজ" থেকে "বিল্ড" এ কনফিগারেশন পরিবর্তন করেছে। ভিজ্যুয়াল স্টুডিও 2017 সম্প্রদায়ের সংস্করণে কাজ করেছেন।
নিও

1
আপনার কাছে ভিএস 2017 থাকলে গ্রহণযোগ্য উত্তর এবং xyq.384.b দ্বারা উত্তর উভয়ই সহায়তা করবে। আমার জন্য xyq.384.b উত্তরটি ঠিক ছিল কারণ এটি জেআইটি ডিবাগার যা পয়েন্টারটি দমন করছিল ... আমি দুঃখিত দুঃখিত জেআইটি এটি "অনুকূলিত" করেছে ...
বিলআরহল

ডিবাগ কনফিগারেশনে স্যুইচ করার পরে আমি আবিষ্কার করেছি যে অনুকূলিত কোড বাক্সটি ইতিমধ্যে চেক করা ছিল। পাঠ শিখেছি: রিলিজ কনফিগারেশন মোডে ডিবাগ করবেন না।
eliteproxy

135

ভিএস 2015 সম্প্রদায় সংস্করণেও

ডিবাগ-> বিকল্প বা সরঞ্জাম-> বিকল্পে যান

এবং ডিবাগিং পরীক্ষা করুন -> সাধারণ-> মডিউল লোডে জেআইটি অপ্টিমাইজেশন দমন করুন (কেবল পরিচালিত)


7
উপরে উল্লিখিত সমস্ত সমাধান প্রয়োগ করার পরে এটি আমার সমস্যার সমাধান করেছে।
মসিহ

1
প্রস্তাবিত উত্তরগুলির কোনওটিই আমার পক্ষে কাজ করে না। আমার ভেরিয়েবলগুলি এখনও অপ্টিমাইজ করা আছে ...
সুশি 271

হঠাৎ কেন হঠাৎ এটি ঘটতে শুরু করলো তা ধারণা নেই .. তবে এটি ঠিক করেছে!
মার্ফিব্রো 2

পবিত্র বোকা, এটি ভিএস2017 সম্প্রদায়ে এটি আমার জন্য স্থির করেছে! কখন বা কীভাবে এই বিকল্পটি অনির্বাচিত হয়েছে সে সম্পর্কে কোনও ধারণা নেই ...
ইয়ান কেম্প

চ্যাম্পের মতো কাজ করে!
বিলআরহ্ল

59

আপনি যদি সক্ষম অপ্টিমাইজেশানগুলি দিয়ে সংকলন করেন, তবে অনেকগুলি ভেরিয়েবল অপসারণ করা হবে; উদাহরণ স্বরূপ:

SomeType value = GetValue();
DoSomething(value);

এখানে স্থানীয় পরিবর্তনশীল valueসাধারণত মুছে ফেলা হবে, পরিবর্তে স্ট্যাকের উপর রাখা - কিছুটা যেমন আপনি লিখেছেন:

DoSomething(GetValue());

এছাড়াও, যদি কোনও রিটার্ন মান একেবারেই ব্যবহার না করা হয় , তবে এটি "পপ" এর মাধ্যমে ফেলে দেওয়া হবে ("স্টলোক" এর মাধ্যমে কোনও স্থানীয় সংরক্ষণের পরিবর্তে এবং আবার; স্থানীয়টির অস্তিত্ব থাকবে না)।

এই কারণে, এই ধরনের একটি Build এ ডিবাগার বর্তমান মূল্য পেতে পারে না valueকারণ এটি বিদ্যমান নেই - এটি শুধুমাত্র মধ্যে সংক্ষিপ্ত তাত্ক্ষণিক জন্য বিদ্যমান GetValue()এবং DoSomething(...)

এরূপই আপনি যদি ডিবাগ করতে চান ... একটি রিলিজ বিল্ড ব্যবহার করবেন না! বা কমপক্ষে, আপনি ডিবাগ করার সময় অপ্টিমাইজেশন অক্ষম করুন।


4
আপনার উত্তরের জন্য আপনাকে ধন্যবাদ - তবে আমি আমার প্রকল্পে কোড সম্পত্তিটি অনুকূলিতকরণ করে দেখছি এবং এটি নির্বাচিত হয়নি = (
কৌতূহল

4
@ মার্ক - আপনি কী বলছেন তা আমি বুঝতে পেরেছি, তবে আমি মাইক্রোসফ্টের রেফারেন্স সোর্স লাইব্রেরিগুলিকে তাদের নিজস্ব বদ্ধমূল পদক্ষেপের জন্য কোড পদক্ষেপে ব্যবহার করছি। আমি এখন পদ্ধতিগুলির মধ্যে দিয়ে চলছি, তবে স্থানীয়দের কোনও মান আমি দেখতে পাচ্ছি না। । নেট সোর্সটি ডিবাগ করার কী দরকার? কোনও পরামর্শ? stackoverflow.com/questions/13147132/...
one.beat.consumer

আমি @ one.beat.consumer হিসাবে একই জিনিসটি করতে দেখছি: কেন এএসপি.নেট কাঠামোটি কাজ করছে না তা বোঝার জন্য মাইক্রোসফ্টের সর্বজনীন প্রতীকগুলির মাধ্যমে পদক্ষেপের চেষ্টা করা। আমার ক্ষেত্রে, এমভিসি 3 তে মডেল বাঁধাই ...
bambams

@ one.beat.consumer আমি ধরে নিচ্ছি কারণ মাইক্রোসফ্ট রেফারেন্সগুলি অপ্টিমাইজেশান সক্ষম করার সাথে সংকলিত হয়েছিল, তাই মানগুলি শেষ হয়ে যাওয়ার জন্য আপনি যদি তাদের উত্স কোডটি ডাউনলোড করতে পারেন তবে ঠিক একইভাবে যদি আপনি অপ্টিমাইজেশন সহ আপনার প্রকল্পটি সংকলন করেন সক্ষম করা হয়েছে। এটি প্রকল্প (ডিএল) নির্দিষ্ট - আপনি যদি এমএস রেফারেন্সগুলির "ডিবাগ" সংস্করণ পেতে পারেন তবে আপনি মানগুলি দেখতে সক্ষম হবেন। ভুলে যাবেন না যে যদি আপনার মূল প্রকল্পটি উল্লেখ করছে যে অন্য প্রকল্পের দ্বারা যদি এমএস ডেলিকে উল্লেখ করা হয়, তবে "সাব্রেন্সেন্স" অন্য প্রকল্পের সেটিংসের সাথে মেলে।
drzaus

22

http://www.guntucomputerhacks.blogspot.com.au/2014/07/cannot-obtain-value-of-local-or.html

এটি আমার জন্য ভিজ্যুয়াল স্টুডিও 2013 এ কাজ করেছে।

আপনাকে যা করতে হবে তা হ'ল ..

  1. প্রকল্পটি ডান মাউস ক্লিক করুন যা আপনি ডিবাগ করতে পারবেন না।
  2. প্রকল্পের স্বীকৃতিতে যান।
  3. বিল্ড মেনুতে ক্লিক করুন।
  4. উন্নত বোতামে ক্লিক করুন।
  5. ডিবাগ তথ্য ড্রপডাউন মান পূর্ণ পূর্ণ।
  6. আপনার প্রকল্পটি পুনর্নির্মাণ করুন।

20

আমি কেবল এটিতে ছুটে এসেছি এবং Releaseবিল্ড কনফিগারেশনের পরিবর্তে বিল্ড কনফিগারেশনের অধীনে Debugচলছিলাম। একবার আমি Debugআমার পরিবর্তনশীলটিতে ফিরে এসে আবার ঘড়িতে দেখিয়েছি।



8

যখন আমি একই সমস্যার মুখোমুখি হয়েছিলাম তখন আমাকে পুনর্নির্মাণের আগে আমার সমাধানটি পরিষ্কার করতে হয়েছিল। এটা আমার জন্য এটি যত্ন নেওয়া।


6

"অপ্টিমাইজ কোড" সম্পত্তিটি যাচাই করা হয়েছে এমন সমস্যা সম্পর্কে এখনও কোডটি এখনও অপ্টিমাইজড হিসাবে সংকলন করছে: সবকিছুর চেষ্টা করার পরে অবশেষে আমাকে কীভাবে সহায়তা করেছিল একই সেটিংস পৃষ্ঠায় "প্রকল্পের ব্যবস্থাবিহীন কোড ডিবাগিং সক্ষম করুন" চেকবক্সটি পরীক্ষা করা হয়েছিল (প্রকল্পের বৈশিষ্ট্য - ডিবাগ)। এটি কোড অপ্টিমাইজেশনের সাথে সরাসরি সম্পর্কিত নয়, তবে এই সক্ষম করার সাথে ভিএস আর আমার লাইব্রেরিটিকে অনুকূলিত করে না এবং আমি ডিবাগ করতে পারি।


1
দ্বিতীয় পরামর্শটি এটিকে আবার কাজ করে দেওয়ার জন্য আপনাকে ধন্যবাদ!
কোডমিলিয়ান

1
ভিএস 2015 তে, আমি দেখতে পাচ্ছি না Enable unmanaged code debugging। আছে Enable native code debugging, আমি এটি যাচাই করার চেষ্টা করেছি কিন্তু এতে কোনও পার্থক্য হয়নি।
আল লেলোপাথ

1
ভিএস ২০১৫-তে আমি প্রকল্প বিল্ড, ওয়েব, ডিবাগার এবং এটিতে কাজ করে "নেটিভ কোড" সক্ষম করেছিলাম checked
মাফেট

6

আমি একই সমস্যা সম্মুখীন এবং আমার জন্য সমাধান পরিবর্তন Solution Configurationথেকে Releaseথেকে Debug। আশা করি এটা সাহায্য করবে


4

আমার ক্ষেত্রে, আমি একটি ওয়েব এপিআই প্রকল্পে কাজ করছিলাম এবং যদিও প্রকল্পটি পুরো ডিবাগের সাথে সঠিকভাবে সেট করা হয়েছিল, তবুও আমি যখনই আইআইএস প্রক্রিয়াটি সংযুক্ত করার চেষ্টা করছিলাম তখনই আমি এই ত্রুটিটি দেখছিলাম। তখন আমি বুঝতে পারলাম প্রকাশের প্রোফাইলটি প্রকাশের কনফিগারেশনটি ব্যবহার করতে সেট করা হয়েছে। সুতরাং আপনি যদি আপনার ডটনেট ওয়েব এপিআই প্রকল্পের 'প্রকাশনা' বৈশিষ্ট্যটি ব্যবহার করেন তবে আরও একটি জায়গা হ'ল আপনার প্রকাশিত প্রোফাইলটি check


3

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


1

আজুর ওয়েবসাইটগুলির ওয়েব অ্যাপ্লিকেশনটি ডিবাগ করার সময় যারা এই সমস্যাটি অনুভব করছেন তাদের অতিরিক্ত উত্তর হিসাবে:

গিটহাব থেকে মোতায়েন করার সময়, উদাহরণস্বরূপ, কোডটি অ্যাজুরে সার্ভারে সংকলিত হয় ডিফল্টরূপে অনুকূলিত

আমি সেট করে একটি ডিবাগযোগ্য ভাবে কম্পাইল করার সার্ভার বলতে SCM_BUILD_ARGSকরার জন্য/p:Configuration=Debug

তবে আরও বিকল্প আছে। এটি দেখুন: http://azure.microsoft.com/blog/2014/05/08/intr Productions-to-remote-debugging-on-azure-web-sites-part-3-mult-instance-en वातावरण- and-git /


1

ভিজ্যুয়াল স্টুডিও 2012 এ:

প্রকল্পের বৈশিষ্ট্যগুলিতে যান -> ডিবাগ -> "ভিজ্যুয়াল স্টুডিও হোস্টিং প্রক্রিয়া সক্ষম করুন" আনচেক করুন


1

ওয়েব অ্যাপ্লিকেশনগুলির জন্য আরও একটি সমস্যা রয়েছে যা গুরুত্বপূর্ণ এবং এটি অ্যাপ্লিকেশন প্রকাশের প্রক্রিয়া চলাকালীন সঠিক কনফিগারেশন নির্বাচন করছে।

আপনি আপনার অ্যাপ্লিকেশনটিকে ডিবাগ মোডে তৈরি করতে পারেন, তবে এটি হতে পারে আপনি এটি প্রকাশের মোডে প্রকাশ করবেন যা ডিফল্টরূপে কোডটিকে ঘৃণিত করে তবে প্রকাশিত কোড রিলিজ মোডে থাকাকালীন এটি ডিবাগ মোড দেখায় আইডিই আপনাকে বিভ্রান্ত করতে পারে। আপনি নীচে স্ন্যাপশটের বিবরণ দেখতে পারেন: এখানে চিত্র বর্ণনা লিখুন


0

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

আমার ডিবাগযোগ্য বৈশিষ্ট্যটি সেট করা হয়েছিল: ডিবাগ্যাবল অ্যাট্রিবিউট.ডেবগিংমডস.আইগনোর সিম্বলস্টোরসিকোয়েন্সপয়েন্টস যা এই এমএসডিএন নিবন্ধ অনুসারে জেআইটি সংকলকটিকে অপ্টিমাইজেশন ব্যবহার করতে বলে। আমি আমার এসেম্বলিআইএনফো ফাইলগুলি থেকে এই লাইনটি সরিয়েছি এবং স্থানীয় ভেরিয়েবলগুলি উপলব্ধ ছিল।


0

ভিজ্যুয়াল স্টুডিও 2017 বা 2015 এ:

সলিউশনটিতে ডান ক্লিকের সমাধানে যান তারপরে বৈশিষ্ট্যগুলি নির্বাচন করুন -> সমস্ত কনফিগারেশন-> ডিবাগ নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন। পুনঃনির্মাণ এবং চালনার পরে, এই সমাধানটি আমার পক্ষে কাজ করেছে।


0

আমারো একই ইস্যু ছিল. উপরের সমস্তটি চেষ্টা করে দেখতে পেলাম যে আমার প্রকল্পের জন্য আমাকে {PROJECT_ROOT \ \ বিন \ রিলিজ \ নেটকোয়ারপ্প ২.২ এবং {PROJECT_ROOT \ \জেজ \ রিলিজ \ নেটকোয়ারপ্প ২.২ এর ভিতরে সমস্ত কিছু মুছতে হয়েছে। এটি অবশ্যই প্রকাশের সাথে সংযুক্ত ছিল কারণ যদিও আমি আমার অ্যাজুরে ওয়েব অ্যাপে ডিপ্লোয়মেন্ট সরঞ্জাম / বিটবাকেট ব্যবহার করি, তবে আমি বিল্ড >> প্রকাশনা >> অ্যাজুরেতে প্রকাশ করুন চেষ্টা করেছি কারণ আমি কোন ফাইলগুলি প্রকৃতপক্ষে স্থাপন করা হয়েছিল তা খতিয়ে দেখতে চেয়েছিলাম।


0

ডাব্লুপিএফ অ্যাপ্লিকেশন সহ এর আগেও একই সমস্যা ছিল এবং এখানে সমস্ত সমাধান সমস্যার সমাধান করেনি । সমস্যাটি হ'ল মডিউলটি ইতিমধ্যে অনুকূলিত হয়েছে সুতরাং নিম্নলিখিত সমাধানগুলি কাজ করে না (বা সমস্যাটি সমাধান করার জন্য যথেষ্ট নয়):

  • " অপ্টিমাইজ কোড " চেকবক্সটি চেক-না করা
  • " মডিউল লোডে জেআইটি অপ্টিমাইজেশন দমন করুন " চেক করা হয়েছে
  • DEBUG এ সমাধান কনফিগারেশন

মডিউলটি এখনও অপ্টিমাইজড লোড। নিম্নলিখিত স্ক্রিনশট দেখুন: অনুকূল মডিউল


এই সমস্যাটি সমাধান করতে আপনাকে অনুকূলিত মডিউলটি মুছতে হবে। অপ্টিমাইজড মডিউল পথটি সন্ধান করতে আপনি প্রক্রিয়া হ্যাকারের মতো একটি সরঞ্জাম ব্যবহার করতে পারেন ।

" প্রসেস প্যানেল " তে আপনার প্রোগ্রামটি ডাবল ক্লিক করুন তারপরে নতুন উইন্ডোতে ট্যাবটি খুলুন " .NET সমাবেশগুলি "। তারপরে " নেটিভ ইমেজ পাথ " কলামে আপনি সমস্ত অনুকূলিত মডিউল পাথগুলি খুঁজে পাবেন । আপনি ফোল্ডারটিকে ডি-অনুকূলিতকরণ এবং মুছতে চান তা সনাক্ত করুন (নীচের স্ক্রিনশটটি দেখুন): এখানে চিত্র বর্ণনা লিখুন (আমি স্পষ্ট কারণে আমার সংস্থার নাম ঝাপসা করেছি)

আপনার অ্যাপ্লিকেশনটি পুনরায় চালু করুন (1 টি চেক বক্স সহ সঠিকভাবে চেক করা হয়েছে) এবং এটির কাজ করা উচিত।

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

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