সুরক্ষিত মেমরিটি পড়ার বা লেখার চেষ্টা করা হয়েছে। এটি প্রায়শই এমন একটি ইঙ্গিত যা অন্য স্মৃতিশক্তি দূষিত


144

আমি আশা করছি যে কেউ আমাকে আলোকিত করতে পারে যা সম্ভবত এই ত্রুটির কারণ হতে পারে:

সুরক্ষিত মেমরিটি পড়ার বা লেখার চেষ্টা করা হয়েছে। এটি প্রায়শই এমন একটি ইঙ্গিত যা অন্য স্মৃতিশক্তি দূষিত।

আমি সত্যিই কোড পোস্ট করতে পারি না কারণ এই ত্রুটিটি অ্যাপ্লিকেশনটির কোনও এলোমেলো জায়গায় ছুঁড়েছে বলে মনে হচ্ছে। ত্রুটি নিক্ষেপ করার আগে 12-48 ঘন্টা আগে অ্যাপ্লিকেশনটি কোথাও চলবে। কখনও কখনও এটি একটি আপাতদৃষ্টিতে এলোমেলো স্পটে থামবে এবং উপরের ত্রুটিটি ছুঁড়ে ফেলবে, অন্য সময় পুরো অ্যাপ্লিকেশনটি বন্ধ হয়ে যায় এবং আমি একটি ত্রুটিযুক্ত একটি পর্দা পাই যা "এর মধ্যে মারাত্মক ত্রুটি ছিল ... এর পংক্তিতে কিছু বলে ... এটি হতে পারে সিএলআর বা ... "পিনভোক বা অন্যান্য অ প্রাসঙ্গিক তথ্য সম্পর্কে বাগ। এটি যখন ঘটে তখন সমস্ত থ্রেড বন্ধ হয়ে যায় এবং কোনও ডিবাগিং তথ্য উপলব্ধ থাকে না।

সংক্ষেপে অ্যাপ্লিকেশনটি এটি করে:

এটি সম্পূর্ণভাবে সি # তে লিখিত একটি মাল্টি-থ্রেড সার্ভার অ্যাপ্লিকেশন। ক্লায়েন্টরা সকেটের মাধ্যমে সার্ভারে সংযুক্ত হয়। সার্ভার ক্লায়েন্টদের জন্য ভার্চুয়াল "পরিবেশ" চালায় যেখানে তারা একে অপরের সাথে এবং পরিবেশের সাথে যোগাযোগ করতে পারে। এটি বেশ কিছুটা স্মৃতি গ্রহন করে তবে আমি এটি ফাঁস করতে দেখছি না। এটি সাধারণত প্রায় 1.5 জিবি গ্রহণ করে। আমি মনে করি না এটির ফুটো কারণ অ্যাপ্লিকেশন চলমান পুরো সময়টিতে মেমরির ব্যবহার তুলনামূলকভাবে স্থির থাকে। ক্লায়েন্টরা কিছু না করলেও পরিবেশ বজায় রাখার জন্য এটি নিয়মিত চলমান কোড। এটি কোনও তৃতীয় পক্ষের সফ্টওয়্যার বা অন্যান্য API ব্যবহার করে না। এই অ্যাপ্লিকেশনটি কেবলমাত্র বাইরের সংস্থানগুলি ব্যবহার করে তা হ'ল সকেট সংযোগ এবং এসকিউএল ডাটাবেস সংযোগ। এটি একটি 64 বিট সার্ভারে চলছে running .Net 2.0, 3.5 এবং 4 ব্যবহার করে আমি VS2008 এবং VS2010 এ এটি ডিবাগ করার চেষ্টা করেছি।

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


সম্পূর্ণ কল স্ট্যাক পোস্ট করুন ...
মিচ গম


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

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

কোনও সিওএম বা অ্যাক্টিভএক্স উপাদান নেই।
অন্য কেউ

উত্তর:


50

আমি একটি মানিআইএনফো ডিএলএল দিয়ে সদ্য VS 2013 .NET 4.5 এ এই সমস্যার মুখোমুখি হয়েছি। দেখা যাচ্ছে, সমস্যাটি হ'ল আমি প্ল্যাটফর্মটি বিল্ডের জন্য x86 থেকে যে কোনও সিপিইউতে পরিবর্তন করেছি এবং এই ত্রুটিটি ট্রিগার করার জন্য এটি যথেষ্ট ছিল। এটিকে x86 এ ফিরে পরিবর্তনটি কৌশলটি করেছে। কাউকে সাহায্য করতে পারে।


1
আপনি x86 এর সাথে কীভাবে এটি পরিবর্তন করেছিলেন? আমি এই নির্দেশের সাথে একই সমস্যার মুখোমুখি CSingleLock lock(&m_csMember, TRUE);আরও তথ্যের জন্য, আমার পোস্টটি এখানে রয়েছে
এবিসমো

ভিএস 2012/2013 এ, প্রোজেক্ট প্রোপার্টি-> যান এবং "প্ল্যাটফর্ম টার্গেট" আপনার যা যা প্রয়োজন তা পরিবর্তন করুন। যদিও আমি মনে করি যে অন্য কোনও জায়গা রয়েছে যেখানে আপনি এটি পরিবর্তন করতে পারেন, তবে আমি এটির সন্ধান করতে পারি না বলে আমি মনে করি যে কোনওভাবেই একই ফলাফল অর্জন করা উচিত
সের্গে

আমি আসলে ভিএস 2013 ব্যবহার করছি এবং এটি x86: /
এবিসোমো

1
আপনার সমস্যা অনেক কিছুর কারণে হতে পারে, আমি সত্যিই অবাক হয়েছিলাম যে আমি বিল্ড প্ল্যাটফর্মটি পরিবর্তন করে আমার সমস্যাটি সমাধান করেছি। আপনি একটি ভাগ্যবান পলায়ন বলতে পারে।
সের্গেই

এই উত্তরটির সাথে এই সমাধানটি আমার পক্ষে এটি সমাধান হয়েছে।
জ্যাচ পোস্টেন

23

আমি ভিজ্যুয়াল স্টুডিও (ভিএস) ২০১০-এর সাথেও এই সমস্যার মুখোমুখি হয়েছি More সমস্যার সমাধানের প্রকল্প হিসাবে প্রকল্পের প্রকল্পগুলি (এমনকি তাদের ক্ষেত্রেও যাদের আক্ষরিকরূপে কোনও কোড বা কোনও অতিরিক্ত অ্যাসেমব্লি ছিল না যেগুলি প্রকল্পের টেমপ্লেটেই আসে সেগুলি ডিফল্টগুলি বাদে উল্লেখ করা হয়)।

নিম্নলিখিত পরিবর্তনগুলি অবশেষে আমাকে সমস্যাটি কমাতে সহায়তা করেছে: কনসোল অ্যাপ্লিকেশন প্রকল্পের প্রোজেক্ট বৈশিষ্ট্যগুলিতে যান (বিকল্পভাবে, সমাধান এক্সপ্লোরার হিসাবে প্রকল্প ফাইল নির্বাচন করুন এবং Alt+ Enterকী সংমিশ্রণ টিপুন ) -> Debugট্যাবে যান -> Enable Debuggersডান ফলকের অংশে স্ক্রোল করুন -> চেক করুন Enable unmanaged code debuggingচেক বক্স নীচে স্ন্যাপশট দেখানো -> ক্লিক করুন Floppyপ্রকল্পের বৈশিষ্ট্য সংরক্ষণ করতে টুলবারে বোতাম। কেন এটির মূল কারণ এখনও আমার জানা নেই। কেবলমাত্র আমি লক্ষ্য করেছি যে পূর্ববর্তী রাতে আমার মেশিনে অনেকগুলি উইন্ডোজ আপডেট ইনস্টল হয়েছিল যা বেশিরভাগ অফিস আপডেট এবং ওএস আপডেটগুলি তৈরি করে (এক ডজনেরও বেশি কেবি নিবন্ধ)।

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

আপডেট : ভিএস 2017 এর পরে নীচের স্ক্রিনশটে প্রদর্শিত হিসাবে সেটিংসের নামটি পরিবর্তিত হয়েছে:

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


1
ভিএস 2017 এর হিসাবে এটির নামকরণ করা হয়েছিল " নেটিভ কোড ডিবাগিং সক্ষম করুন "
চিরামিসু

1
যুগোপযোগী তথ্য সরবরাহ এবং সম্প্রদায়কে সহায়তা করার জন্য @ চিরামিসু ধন্যবাদ Thanks আমি ভিজ্যুয়াল স্টুডিওর নতুন সংস্করণগুলির জন্য উপযুক্ত করে তুলতে উত্তরটি আপডেট করেছি।
আরবিটি

19

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

আশা করি এটি কাউকে সহায়তা করবে কারণ এই সমস্যাটি দীর্ঘদিন ধরে আমার অ্যাপ্লিকেশনটিকে জর্জরিত করে চলেছে।


1
আমার ক্ষেত্রে যখন আমি ডিভাইস থেকে ঘন ঘন ত্রুটিযুক্ত ত্রুটিটি ঘন ঘন ঘন ডেটা পড়ি, তখন থ্রেড.স্লাইপ (1000) ব্যবহার করার পরে আমি কিছু সময় থ্রেডটি বন্ধ করে দিয়েছিলাম next এবং নিখুঁত কাজ।
জেআরবি


79
বেশিরভাগ আপ ভোটিত উত্তর যা কোনও যৌক্তিক উত্তর সরবরাহ করে না।
তেওমন শিপাহি

আমার সন্দেহ হয় যে আমি আমার মাদারবোর্ডে বা আমার সফ্টওয়্যারটিতে এনভিডিয়া সম্পর্কিত কোনও কিছু করেছি। আমি ভিজ্যুয়াল স্টুডিও 2010 ব্যবহার করছি V সমস্যাটি কেবল ভিএস থেকে প্রজেক্টটি ডিবাগ করার সময় ঘটে during ডিবাগ ফোল্ডার থেকে এটির আউটপুট নির্ভুল কাজ করে।
আরবিটি

1
আমি আমার নিজস্ব প্রক্রিয়াটির থ্রেডগুলি অ্যাক্সেস করছি যা সমস্যার সৃষ্টি করে।
মুহাম্মদ সাকিব

13

প্রকল্পে মিশ্র বিল্ড প্ল্যাটফর্ম ডিএলএলগুলির কারণে সমস্যা হতে পারে। অর্থাৎ আপনি আপনার প্রকল্পটি যে কোনও সিপিইউতে তৈরি করেন তবে x86 প্ল্যাটফর্মের জন্য ইতিমধ্যে নির্মিত প্রকল্পে কিছু ডিএলএল রয়েছে। 32 বিট এবং bit৪ বিট আর্কিটেকচারের বিভিন্ন মেমরি ম্যাপিংয়ের কারণে এগুলি এলোমেলো ক্র্যাশ ঘটায়। সমস্ত ডিএলএল যদি একটি প্ল্যাটফর্মের জন্য তৈরি করা হয় তবে সমস্যার সমাধান হতে পারে।



8

পরিচালিত কোডে এই ত্রুটিটি ঘটবে না। এটি সমস্যার সমাধান করতে পারে:

এই ব্যতিক্রমটিকে বাইপাস করতে ভিজ্যুয়াল স্টুডিও ডিবাগারে যান:

Tools menu ->Options -> Debugging -> General -> Uncheck this option "Suppress JIT optimization on module load"

আশা করি এটি সাহায্য করবে।


3
আমি দুঃখিত যে এটি আপনার পক্ষে কাজ করে নি। এই ত্রুটিটি অনেক কারণেই উত্থাপিত হয়েছিল, আমি ভেবেছিলাম, আমি যে সমাধানটি পোস্ট করেছি, সেটি অন্য কারও জন্য সমস্যাটি সমাধান করতে পারে যদি কারণটি জেআইটি অপ্টিমাইজেশন হয়।
কৌতূহলীবায়

6

আমি ছুটে এসেছি এবং আজ এই ব্যতিক্রমটির একটি সমাধান পেয়েছি। এটি তখন ঘটেছিল যখন আমি একটি ইউনিট পরীক্ষা (এনউনিত) ডিবাগ করার চেষ্টা করছিলাম যা একটি বিমূর্ত শ্রেণিতে ভার্চুয়াল পদ্ধতি বলে।

সমস্যাটি .NET 4.5.1 ইনস্টল সহ উপস্থিত রয়েছে।

আমি নেট .৪.৪.২ ডাউনলোড করেছি এবং ইনস্টল করেছি (আমার প্রকল্পগুলি এখনও রেফারেন্স করে। নেট 4.5.৪.১) এবং সমস্যাটি সমাধান হয়েছে।

সমাধানের উত্স:

https://connect.microsoft.com/VisualStudio/feedback/details/819552/visual-studio-debugger-throws-accessviolationexception


5

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

আপনি কোন ওএস এবং পরিষেবা প্যাকটি চালাচ্ছেন?


1
এক্সপি 64 এসপি 2 চালানো হচ্ছে। যদিও একাধিক সার্ভারে এটি ঘটেছে। আমি এতবার সব কিছু দিয়েছি এবং থ্রেড নিরাপদ নয় এমন কিছুই দেখতে পাচ্ছি না। এছাড়াও আমি কি অ্যাক্সেস বিভক্তির পরিবর্তে কোনও সংশোধন ত্রুটি সংগ্রহ পাচ্ছি?
অন্য কেউ

5

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

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

যখন কোনও প্রকল্প কোনও নতুন মেশিনে স্থানান্তরিত হয়, তখন আমি আপনাকে সেই প্রকল্পে যুক্ত সমস্ত রেফারেন্স নবায়ন করার পরামর্শ দিই।


4

আপনি কি নিজের আবেদনের জন্য ডিইপি (ডেটা এক্সিকিউশন প্রিভেনশন) বন্ধ করার চেষ্টা করেছিলেন ?


2
আমি নিশ্চিত না যে এটি একটি ভাল ধারণা। এটি ক্র্যাশটি ভালভাবে বিলম্ব করতে পারে তবে আরও বেশি ক্ষতি করতে ব্যয় করতে পারে। আমি মনে করি সেরা ধারণা, যদি আপনি ক্র্যাশ করতে
চলেছেন তবে

1
ডিইপি বন্ধ করা বুদ্ধিমানের মতো নয় তবে দরকারী ডায়াগনস্টিক অনুশীলন।
vcsjones

4

আমি একই সমস্যা সম্মুখীন। আমার কোডটি অটোক্যাড ২০১২-এর অভ্যন্তরে একটি .NET dll (অটোক্যাড এক্সটেনশান) চলছিল I আমি ওરેકল.ডাটাএ্যাক্সেসও ব্যবহার করছি এবং আমার কোড এক্সিকিউটননকুইয়ারি () এর সময় একই ব্যতিক্রম ছুঁড়েছিল। আমি ভাগ্যক্রমে আমি যে ওডিপি ব্যবহার করছিলাম তার নেট সংস্করণ পরিবর্তন করে সমাধান করেছি (এটি, ওরাকল.ডাটাএ্যাক্সেসের ২.x)


আমি একই সমস্যার মুখোমুখি হচ্ছি - অটোক্যাড। নেট ডেল - সমস্যা এবং সমাধানটি কী ছিল তা কী আপনি ব্যাখ্যা করতে পারেন?
বিকেপুরপুর

3

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

বিবৃতিটির অর্থ হ'ল, যখন আপনি মেমরিটি অ্যাক্সেস করার চেষ্টা করেন যা আপনার নয়, সাধারণত এটি কারণ আপনি এটি কোনও দূষিত পয়েন্টার দিয়ে করছেন যা অন্য কোথাও থেকে এসেছে। এজন্যই ইঙ্গিতটি উল্লেখ করা হচ্ছে।

স্মৃতি দুর্নীতি সহ, ত্রুটি ধরা খুব কমই ত্রুটির মূল কারণের কাছাকাছি। এবং এফেক্টগুলি হ'ল যা আপনি বর্ণনা করেছেন ঠিক তেমন এলোমেলো। আপনাকে কেবল সাধারণ অপরাধীদের দিকে নজর দিতে হবে, যেমন:

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

সমস্যার কারণ হিসাবে এটির পিছনে কাজ করা অবিশ্বাস্যরূপে কঠিন কারণ এই যে সমস্যার সৃষ্টি এবং সমস্যা সনাক্তকরণের মধ্যে এত কিছু ঘটতে পারে।

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

আমি ভিএস-এর সাথে জানতে যথেষ্ট পরিচিত নই তবে আপনি কোনও মেমরি ট্র্যাকিং সরঞ্জাম (লিনাক্সের জন্য ভালগ্রাইন্ডের মতো) ব্যবহার করার সম্ভাবনাটিও দেখতে চাইতে পারেন এটি কোনও সুস্পষ্ট সমস্যা স্পষ্ট করতে পারে কিনা তা দেখতে।


3
আপনি খারাপ স্মৃতি থেকেও দূষিত পয়েন্টার পেতে পারেন। যদি এটি ইসিসি মেমরির সাথে কোনও সার্ভারে না ঘটে থাকে, কারণ হিসাবে হার্ডওয়্যারটি নির্মূল করার জন্য একটি দীর্ঘ-চলমান মেমরি পরীক্ষার ইউটিলিটি চেষ্টা করুন।
সিডোনার

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

5
@ সোমন আর অন্য: আমি কষ্টের সাথেই মনে করি নাম কল করা আপনাকে অনেক বেশি সহায়তা পাবে।
মিচ গম

2
@ সোমন আর অন্য, আপনার দেওয়া সীমাবদ্ধ তথ্য আমি যতটা দিতে পেরেছি তেমন সাহায্য করেছি। এমনকি বিশ্বের সেরা চিকিত্সক এমন একজন রোগীর সাথে খুব বেশি কিছু করতে পারবেন না যিনি কেবল "আমি আহত" বলেছেন :-) আপনি যদি আরও নির্দিষ্ট তথ্য সরবরাহ করতে চান তবে আমরা আরও সাহায্য করতে পারি।
paxdiablo

5
খারাপ উত্তর, কিন্তু পদ্ধতির, নির্লজ্জ জল্পনা, অযৌক্তিক অনুমান, কোনও সমাধান দেওয়া হয়নি ... কেন এই উত্তর এখনও অবধি আছে? এবং এই উত্তরটি কীভাবে 3 জন সম্ভব হতে পারে?
থান্ডারগ্রি

3

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

আমার সেরা প্রস্তাবটি হ'ল ক্র্যাশ হওয়া ঘটনার সাথে সংযুক্ত হওয়া এবং ক্র্যাশ হওয়ার সময় কী ঘটছে তার গভীরতর গভীরতা জানতে WinDBG এবং SOS ব্যবহার করুন । এটি হৃদয়ের হতাশার জন্য নয়, তবে ঠিক কী ভুল হচ্ছে তা নির্ধারণ করার জন্য আপনাকে আরও শক্তিশালী সরঞ্জামগুলি বের করতে হতে পারে।


এটি ত্রুটি বার্তায় পিনভোককে একটি সম্ভাব্য কারণ হিসাবে উল্লেখ করেছে। কোনও অনিরাপদ কোড নেই। আমি WinDBG চেষ্টা করব। ধন্যবাদ।
অন্য কেউ

3

ঠিক আছে, এটি বেশ অকেজো এবং সহজ উপাখ্যান্য হতে পারে, কিন্তু ...

এই ব্যতিক্রমটি কয়েকটি টোয়াইন 32 লাইব্রেরি দ্বারা ধারাবাহিকভাবে ছুঁড়ে ফেলা হয়েছিল যা আমরা আমার প্রকল্পে ব্যবহার করি, তবে কেবল আমার মেশিনেই ঘটবে।

আমি পুরো ইন্টারনেটে প্রচুর প্রস্তাবিত সমাধানের চেষ্টা করেছি, কোনও লাভ হয়নি ... যতক্ষণ না আমি আমার সেলফোনটি প্লাগ না করে (এটি ইউএসবির মাধ্যমে সংযুক্ত ছিল)।

এবং এটা কাজ করে.

দেখা যাচ্ছে টোয়াইন 32 লাইব্রেরি আমার ফোনটিকে টোয়েন সামঞ্জস্যপূর্ণ ডিভাইস হিসাবে তালিকাভুক্ত করার চেষ্টা করছে এবং এটি প্রক্রিয়াতে যা কিছু করেছে সেগুলি ব্যতিক্রম ঘটায়।

চিত্রে যান...


3

যখন একটি পদ্ধতি যে একটি একটি রেফারেন্স লাগে pinvoke ব্যবহার আমি এই ত্রুটি পেয়েছিলাম StringBuilder। আমি ডিফল্ট কনস্ট্রাক্টর ব্যবহার করেছি যা দৃশ্যত কেবলমাত্র 16 বাইট বরাদ্দ করে। উইন্ডোজ বাফারে 16 বাইটের বেশি রাখার চেষ্টা করেছিল এবং একটি বাফারকে ছাড়িয়ে গেছে।

পরিবর্তে

StringBuilder windowText = new StringBuilder(); // Probable overflow of default capacity (16)

একটি বৃহত্তর ক্ষমতা ব্যবহার করুন:

StringBuilder windowText = new StringBuilder(3000);

2

আমার ক্ষেত্রে ফাইলটি উন্মুক্ত ছিল এবং তাই লক হয়ে গেছে।

এক্সেল-এও খোলা ছিল এমন লিনকটোএক্সসেল ব্যবহার করে কোনও এক্সেল ফাইল লোড করার চেষ্টা করার সময় আমি এটি পেয়েছিলাম।

আমি এটাই করেছি

    var maps = from f in book.Worksheet<NavMapping>()
                select f;
    try {
        foreach (var m in maps)
            if (!string.IsNullOrEmpty(m.SSS_ID) && _mappings.ContainsKey(m.SSS_ID))
                _mappings.Add(m.SSS_ID, m.CDS_ID);
    } catch (AccessViolationException ex) {
        _logger.Error("mapping file error. most likely this file is locked or open. " + ex);
    }

2

VB.NET এ আমি যে প্রকল্পে কাজ করছি তাতে আমি একই ত্রুটি পেয়েছি। বৈশিষ্ট্য পৃষ্ঠায় "অ্যাপ্লিকেশন কাঠামো সক্ষম করুন" চেক করা আমার জন্য এটি সমাধান করেছে।


1

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


1

আগের দিন পুরোপুরি সূক্ষ্মভাবে তৈরি করা একটি প্রকল্প তৈরির চেষ্টা করার সময়, ভিএস 1017 এ এলোমেলোভাবে এটিকে পেয়েছি। পিসি পুনরায় চালু করার ফলে সমস্যাটি স্থির হয়ে গেছে (আমি নিম্নলিখিত কমান্ডটি আগেও চালিয়েছি, এটির প্রয়োজন কিনা তা নিশ্চিত নই: নেট নেট উইনসক রিসেট)


1
ভিএস 2017 - সিস্টেমের সাথে এটি হ'ল আমার পরিস্থিতি c এটি প্রায়শই এমন একটি ইঙ্গিত যা অন্য স্মৃতিশক্তি দূষিত। আমি অন্য কিছু না করে এই সমস্যা সমাধানের জন্য কেবল পিসি পুনরায় চালু করেছি।
হংকং

0

আমার উত্তরটি আপনার দৃশ্যের উপর খুব বেশি নির্ভর করে তবে 10 বছর বয়সী ক্লায়েন্টের জন্য একটি নেট অ্যাপ্লিকেশন আপগ্রেড করার চেষ্টা করার ক্ষেত্রে আমরা একটি সমস্যা পেয়েছি যাতে তারা এটি উইন্ডোজ 8.1 এ কাজ করতে পারে। @ আলহাজেনের উত্তর আমার কাছে সঠিক বলপার্কে ছিল। অ্যাপ্লিকেশনটি কোনও তৃতীয় পক্ষের ডিএলএল-এর উপর নির্ভরশীল ছিল ক্লায়েন্ট আপডেট করার জন্য অর্থ দিতে চায় না (পেগাসাস / অ্যাকসোফ্ট ইমেজএক্সপ্রেস)। আমরা .NET 4.5 এর জন্য অ্যাপ্লিকেশনটিকে পুনরায় লক্ষ্যবস্তু করেছি তবে প্রতিবার নিম্নলিখিত লাইনটি কার্যকর করার সময় আমরা AccessViolationException was unhandledবার্তাটি পেয়েছি :

UnlockPICImagXpress.PS_Unlock (1908228217,373714400,1341834561,28447);

এটির সমাধানের জন্য, আমাদের প্রকল্পের জন্য নিম্নলিখিত পোস্ট-বিল্ড ইভেন্টটি যুক্ত করতে হবে:

call "$(DevEnvDir)..\tools\vsvars32.bat"
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\editbin.exe" /NXCOMPAT:NO "$(TargetPath)"

এটি স্পষ্টরূপে এক্সিকিউটেবলকে ডেটা এক্সিকিউশন প্রতিরোধের সাথে বেমানান হিসাবে নির্দিষ্ট করে। আরও তথ্যের জন্য এখানে দেখুন


0

কিছু ক্ষেত্রে, এটি তখন হতে পারে যখন:

obj = new obj();
...
obj.Dispose();  // <-----------------    Incorrect disposal causes it
obj.abc...

0

আমার ক্ষেত্রে আমাকে পি / ইনভোক ব্যবহার করে একটি সি / সি ++ গ্রন্থাগারটি উল্লেখ করতে হয়েছিল, তবে আমি নিশ্চিত করেছিলাম যে প্রথমে আউটপুট অ্যারের জন্য মেমরিটি বরাদ্দ করা হয়েছিল fixed:

[DllImport("my_c_func_lib.dll", CharSet = CharSet.Ansi)]
public static extern unsafe int my_c_func(double input1, double input2, double pinput3, double *outData);

    public unsafe double[] GetMyUnmanagedCodeValue(double input1, double input2, double input3)
    {
        double[] outData = new double[24];

        fixed (double* returnValue = outData)
        {
            my_c_func(input1, input2, pinput3, returnValue);
        }

        return outData;
    }

বিস্তারিত জানার জন্য দয়া করে দেখুন: https://www.c-sharpcorner.com/article/pointers-in-C-Sharp/


0

আমার যখন ভিজ্যুয়াল স্টুডিওতে আমার সি # উইনফোর্ডস অ্যাপ্লিকেশনটি ডিবাগ করা হচ্ছে তখন আমার সাথে এটি ঘটেছিল। আমার অ্যাপ্লিকেশনটি ডিলিম্পোর্টের মাধ্যমে উইন 32 স্টোরে কল করে

[DllImport("Secur32.dll", SetLastError = false)]
private static extern uint LsaEnumerateLogonSessions(out UInt64 LogonSessionCount, out IntPtr LogonSessionList);

"প্রশাসক হিসাবে" ভিজ্যুয়াল স্টুডিও চালানো আমার জন্য সমস্যার সমাধান করেছে।


0

আমার একই ত্রুটি বার্তা ছিল:

সিস্টেম.অ্যাক্সেসভিওয়েলেশন এক্সসেপশন: সুরক্ষিত মেমরি পড়ার বা লেখার চেষ্টা করা। এটি প্রায়শই এমন একটি ইঙ্গিত যা অন্য স্মৃতিশক্তি দূষিত।

আমার ক্ষেত্রে, সমাধানটি পরিষ্কার করে পুনরায় তৈরি করার পরে ত্রুটিটি চলে গেছে।


0

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


0

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

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