c# - আমি কিভাবে প্রতিকার করব "ব্রেকপয়েন্ট বর্তমানে আঘাত করা হবে না। কোন ডকুমেন্ট এই নথি জন্য লোড করা হয়েছে। "সতর্কতা?




.net visual-studio (20)

এক্স # এক্সপ্রেস সংস্করণে ডেস্কটপ অ্যাপ্লিকেশন। তারপর কাজ 5 সেকেন্ড পরে কাজ না।

আমি নিম্নলিখিত চেষ্টা।

  • ডিবাগ কনফিগারেশন নিশ্চিত করুন, ডিবাগ পতাকা, এবং সম্পূর্ণ ডিবাগ তথ্য সমস্ত সমাহারগুলিতে সেট করা হয়।
  • আমার সমগ্র মেশিন থেকে প্রকল্প সম্পর্কিত সমস্ত বিন এবং obj ফোল্ডার এবং সমস্ত DLL মুছে দিন।
  • প্রকল্প স্ক্র্যাচ থেকে সমস্যা সৃষ্টিকর্তা।
  • পুনরায় বুট করুন।

আমি সমাধান দুটি WinForms প্রকল্প আছে। তাদের মধ্যে একটি ডিবাগ তথ্য লোড, এক না। তারা উভয় প্রকল্প ফাইলটি ঠিক একইভাবে ডিবাগ তথ্য পেতে চেষ্টা করছে এমন সমাবেশটি পড়ুন। কোন ধারনা?

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


ASP.Net অ্যাপ্লিকেশনের জন্য, সাইটের বৈশিষ্ট্যগুলি পরীক্ষা করুন, ASP.NET ট্যাব। নিশ্চিত করুন যে সঠিক ASP.NET সংস্করণটি নির্বাচন করা হয়েছে।


অনুলিপি করার পরে এটি আমার ওয়েব হোস্টওয়ার্ক এএসএমএক্স ফাইলটিকে একটি বিদ্যমান ওয়েবসেসে পেস্ট করার পরে ঘটেছে, যার ফলে সম্প্রতি যোগ করা পরিষেবাটি ডিবাগ করার সময় একই ত্রুটি ঘটেছে, ডিবাগ করতে সক্ষম হওয়ার জন্য আমাকে ডিবাগ ছাড়া শুরু করতে হয়েছিল, তারপর প্রক্রিয়াটি সংযুক্ত করুন। তার অদ্ভুত কিন্তু আমি ডিবাগ করতে সক্ষম একমাত্র উপায়।


আপনার bin / ডিবাগ ফোল্ডারে আপনার .pbd ফাইল অনুপস্থিত কিনা তা পরীক্ষা করুন। যদি এটি আপনার প্রোজেক্টের "প্রোপার্টি" এ যান তবে নীচে "তৈরি করুন" এবং তারপরে "উন্নত" নির্বাচন করুন। প্রদর্শিত নতুন উইন্ডোতে "ডিবাগ তথ্য" এর অধীনে "পূর্ণ" নির্বাচন করুন। এই আমার সমস্যা ছিল এবং আমার জন্য এটি সমাধান।


আপনার সমাধান রিলিজ মোডে কিনা তা পরীক্ষা করুন।


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

সমাধান এই চেক করা ছিল।


আমার ক্ষেত্রে আমি রিলিজ মোডে ডিবাগ করার চেষ্টা করছি। একবার আমি ডিবাগ মোডে এটি পরিবর্তন। ইহা কাজ করছে


আমি x86 (বা x64) এ সম্পূর্ণ সমাধানটি পুনর্নির্মাণের (পুনঃপ্রতিষ্ঠিত প্রকল্পগুলি সহ) পুনর্নির্মাণের একই সমস্যাও করেছি।

যদিও আমি আমার সমস্ত প্রকল্পগুলিকে কনফিগারেশন ম্যানেজার (Build-> ConfigManager) থেকে x86 এ সেট করেছি তবে আমার কিছু প্রকল্প x86 তে সেট করা হয়নি।

তাই ঠিক নিশ্চিত করুন প্রকল্পের উপর ক্লিক করুন এবং অনুসরণ করুন

প্রকল্প -> বৈশিষ্ট্য -> ট্যাব ডিবাগ করুন, কনফিগারেশন এবং প্ল্যাটফর্ম যাচাই করুন।


আমি উপরে সাবধানে সব উত্তর পড়া আছে, কিন্তু তাদের কেউ আমার সমস্যা সমাধান।

আমার ক্ষেত্রে, আমি একটি ক্লাস লাইব্রেরী (DLL) কম্পাইল ছিল। কোন মডিউলে ডিবাগ লোড করা হয় বলে মনে হচ্ছে না -> মডিউল, তাই আমি নিজেও প্রতীক লোড করতে পারিনি।

আমার সমাধান আমার কোড এই লাইন যোগ করা ছিল:

System.Diagnostics.Debugger.Launch();

এই কোডটি একবার পৌঁছানোর পরে, একটি ব্যতিক্রম ট্রিগার হয় এবং .NET ফ্রেমওয়ার্কটি একটি ডায়লগ বক্সটি প্রদর্শন করে যা কোনও ভিজ্যুয়াল স্টুডিও (অর্থাত্ VS 2008 এর নতুন উদাহরণ, VS 2013 এর নতুন উদাহরণ, ইত্যাদি) যা আপনি প্রোগ্রামটিকে ডিবাগ করতে ব্যবহার করতে চান। আপনি আপনার প্রকল্পের লোড সঙ্গে ভিএস এর বিদ্যমান উদাহরণ নির্বাচন করতে পারেন। এটি আপনার VS অধিবেশনটিতে প্রক্রিয়াটি সংযুক্ত করবে এবং সমস্ত প্রতীক লোড করবে এবং এখন আপনি আপনার প্রকল্পটিকে ডিবাগ করতে পারবেন।

অবশ্যই, সংকলনটি ডিবাগ কনফিগারেশন ব্যবহার করে করা উচিত, রিলিজ নয়।


আমি জানি, আমি অনেক বছর ধরে দেরী করেছি, কিন্তু আমি ভেবেছিলাম আমি কিছু ভুল করেছি এবং উপরের ধাপগুলি অনুসরণ করেছি তখন আমি বুঝলাম আমি সমাধান দ্বারা সমাধানটি 'রিলিজ' করতে চাই :)


উইন্ডোজের মধ্যে অ্যাডমিনিস্ট্রেটর হিসাবে ভিজ্যুয়াল স্টুডিও চলমান চেষ্টা করুন।


ওয়েবপ্লিকেশনস (আইআইএস এক্সপ্রেস) শুধুমাত্র:

  • রাইট ক্লিক করুন আইআইএস এক্সপ্রেস ট্রে এবং আইআইএস বন্ধ করুন।
  • পরিষ্কার সমাধান


কখনও কখনও, যদিও এটি আপনাকে এই ত্রুটি দেয়, breakpoint এখনও আঘাত পায়, তাই ত্রুটিটি উপেক্ষা করুন। এটি একটি MVC web app Views মোটামুটি প্রায়ই ঘটে।


ডিবাগ / সাধারণ সেটিংসে "জাস্ট মাই কোড" অপশনটি অক্ষম করুন।


ডিবাগিং শুরু করুন, যত তাড়াতাড়ি আপনি ব্রেকপয়েন্টে পৌঁছেছেন বা Debug > Break All ব্যবহার করেছেন Debug > Break All , Debug > Windows > Modules । আপনি প্রক্রিয়ার মধ্যে লোড করা হয় যে সমস্ত সমাহারগুলির একটি তালিকা দেখতে পাবেন। আপনি ডিবাগ তথ্য পেতে চান এক সনাক্ত করুন। এটি রাইট ক্লিক করুন এবং সিম্বল লোড তথ্য নির্বাচন করুন। আপনি একটি ডায়ালগ পাবেন যা সমস্ত ডিরেক্টরিগুলিকে তালিকাভুক্ত করে যেখানে সেটির জন্য .pdb ফাইলটি সন্ধান করা হয়েছে। প্রকৃত .pdb অবস্থান বিরুদ্ধে যে তালিকা যাচাই করুন। এটি একটি পুরাতন খুঁজে না নিশ্চিত করুন।

স্বাভাবিক প্রকল্পগুলিতে, সমাবেশ এবং এটির .পিডিবি ফাইলটি সবসময় আপনার .exe একই ফোল্ডারে IDE দ্বারা অনুলিপি করা উচিত। আপনার প্রকল্পের bin \ ডিবাগ ফোল্ডার। যদি আপনি এটির সাথে খেলছেন তবে আপনি GAC থেকে একজনকে সরান নিশ্চিত করুন।


পরিবর্তে শুধু এই সব জিনিস করছেন

বন্ধ এবং পুনরায় খুলুন

সমাধান এটি সমস্যা ঠিক করবে


প্রকল্প বৈশিষ্ট্য (তারপরে আপনার বিল্ড কনফিগার নির্বাচন করুন)> ট্যাব তৈরি করুন> উন্নত ...> ডিবাগ তথ্য (ড্রপডাউন)

'সব' বা 'pdb-only' সেট করুন তারপর পুনর্নির্মাণ


বিকল্প "ডিবাগ করা শুরু করুন, ডিবাগ + উইন্ডোজ + মডিউল" মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও এক্সপ্রেস ২013 সংস্করণে বিদ্যমান নেই।

সরঞ্জাম বিকল্পগুলি ডিবাগিংয়ের মধ্যে "পরিচালিত সামঞ্জস্যতা মোড ব্যবহার করুন" এটি ঠিক করে।


যারা উত্তর কেউ আমার সমস্যা সমাধান। আমি স্টপ সঙ্গে প্রকল্প বাস্তবায়িত লোড প্রকল্প ছিল না যে উপর ভিত্তি করে অন্য জিনিস চেষ্টা। আমি হ্যান পাসেন্ট লিখেছি যে .dll যেখানে আমি ডিবাগার এবং অ্যাসোসিয়েটেড .পিডিবি ফাইলগুলি বন্ধ করতে চাই যেখানে .exe ফাইলের কাছে কপি করা হয়েছে। সেই ফাইলগুলির পুরনো তারিখ আছে তাই আমি মনে করি তারা রানটাইমতে আপডেট হয়নি। আমি নিজে তাদের মুছে ফেললাম, ভিজ্যুয়াল স্টুডিও আরেকটি জুড়ি তৈরি করে এবং এই নতুন জোড়াটি .exe এর কাছে রাখুন। এখন ব্রেকপিন কাজ করে!

হয়তো সেখানে ভিজ্যুয়াল স্টুডিও অন্য কোনও আছে বলে .EXE এর কাছে বিদ্যমান ফাইলগুলি (.dll এবং .pdb) অনুলিপি এবং প্রতিস্থাপন করতে পারে না। তাই যদি আমি ম্যানুয়ালি মুছে ফেলি তবে VS নতুন .EXE এর কাছাকাছি তৈরি করতে পারে।

আমি মনে করি অন্য পরিবর্তনগুলি (অন্য একটি উত্তর থেকে চেক করে এবং অন্যদিকে) কিছু ট্রিগার করে এবং ভিজ্যুয়াল স্টুডিও কপি করে এবং প্রকল্প ফোল্ডার থেকে exe কাছে ফোল্ডারে প্রতিস্থাপন করে এবং এটি একটি সমাধান ছিল।

আমি মনে করি সমস্যাটি মূল কারণ হল যে ভিজ্যুয়াল স্টুডিওটি রানটাইম-এ অন্য কোন ফাইল ব্যবহার করে, প্রজেক্ট থেকে ফাইলটি বন্ধ করে দেয়।

হয়তো এই উত্তর কেউ সাহায্য!


সংযুক্ত স্ক্রীনশটটিতে দেখানো 'স্বয়ংক্রিয়ভাবে ডিবাগ করার কোডটি স্বয়ংক্রিয়ভাবে নির্ধারণ করুন' বিকল্পে 'প্রক্রিয়া সংযুক্ত করুন' বিকল্পটিতে বিকল্পটি সেট করে ত্রুটিটি ঠিক করতে সক্ষম হয়েছিল।

শুধু নীচের ধাপ অনুসরণ করুন:

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


Debug > Windows > Modules কোন মডিউল লোড হচ্ছে তা দেখতে আমাকে সঠিক দিক দিয়ে রাখে।

আমার ক্ষেত্রে আইআইএস এক্সপ্রেস অস্থায়ী ASP.NET ফাইলগুলি থেকে একটি ভিন্ন DLL লোড হচ্ছে বলে মনে হচ্ছে।

সমাধান?

  1. C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs ব্রাউজ করুন C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. এই ডিরেক্টরির মধ্যে সবকিছু মুছে ফেলুন!




breakpoints