উইন্ডোজের জন্য কোনও ভালগ্রাইন্ড বিকল্প আছে?


210

আমি আমার সি কোডিং / ডিবাগিং উন্নত করতে সাহায্য করার জন্য ভালগ্রাইন্ডের দিকে তাকাচ্ছিলাম যখন এটি কেবল লিনাক্সের জন্যই ছিল - আমার ওএসকে লিনাক্সে স্থানান্তরিত করার বিষয়ে আমার অন্য কোনও প্রয়োজন বা আগ্রহ নেই তাই আমি ভাবছিলাম যে উইন্ডোজের জন্য সমানভাবে কোনও ভাল প্রোগ্রাম আছে কিনা।


আপনি কি ধরণের ডিবাগিং করতে খুঁজছেন? ভালগ্রাইন্ডটি বেশ সমৃদ্ধ একটি টুলসেট এবং নীচের উত্তরগুলি সমস্ত ধরণের দিক নির্দেশ করে। মেমরি ফাঁস / বরাদ্দ ডিবাগিং উপর জোর দিয়ে।
jakobengblom2

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

উত্তর:


29

আরও কিছু ভাল বাণিজ্যিক সরঞ্জাম:


1
শুদ্ধ: সম্মানজনক তবে এখনও দরকারী, এটি কর্পোরেট মালিকানার কতগুলি পরিবর্তন টিকে আছে তা দেখানো হয়েছে!
নর্মন রামসে

2
বীমা ++ আপনার কোডটি ইনস্ট্রুমেন্ট করতে চিরকালের জন্য এবং রানটাইমে আপনার কোডটি কার্যকর করতে চিরকালের জন্য নেয়।
সি জনসন

117

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

1. মেমচেক:

স্মৃতি ড। এটি একটি তুলনামূলকভাবে নতুন সরঞ্জাম, উইন্ডোজ on এ খুব ভাল কাজ করে My

http://code.google.com/p/drmemory/

আমি ইউএমডিএইচও ব্যবহার করেছি ( http://support.microsoft.com/kb/268343 ) এবং এটিকে নিখরচায় দরকারী এবং সেটআপ করা সহজ বলে মনে করেছি। এটি Win2000 থেকে Win7 এ কাজ করে।

AppVerifier জানালা নেটিভ কোড ডেভেলপারদের জন্য একটি swissknife থাকতে হবে, তার "মেমরি" পরীক্ষক অনুরূপ পেশা আছে http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

২. কলগ্রাইন্ড:

আমার প্রিয়টি খুব ঘুমন্ত ( http://www.codersnotes.com/sleepy ) এটি ক্ষুদ্র তবে খুব দরকারী এবং সহজেই ব্যবহারযোগ্য।

আপনার যদি আরও বৈশিষ্ট্যগুলির প্রয়োজন হয় তবে এএমডি কোডএ্যানালিস্ট ™ পারফরম্যান্স অ্যানালাইজার বিনামূল্যে: http://developer.amd.com/docamentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx

উইন্ডোজ পারফরম্যান্স অ্যানালাইসিস সরঞ্জামগুলি মাইক্রোসফ্ট থেকে বিনামূল্যে, ব্যবহার করা খুব সহজ নয় তবে আপনি যদি সময় ব্যয় করতে ইচ্ছুক হন তবে কাজটি সম্পন্ন করতে পারবেন। http://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspx ডাউনলোড করুন: http://msdn.microsoft.com/en-us/performance / cc752957

3. ম্যাসিফ:

উইন্ডোজগুলিতে অনুরূপ (একদম সঠিক মিল নয়) বিনামূল্যে সরঞ্জামগুলি হ'ল:

Sysinternals থেকে VMMap: http://technet.microsoft.com/en-us/sysinternals/dd535533

উইন্ডবিজিতে হিপ কমান্ড: http://hacksofLive.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html

৪. ক্যাশেগ্রিন্ড:

উপরে উল্লিখিত উইন্ডোজ পারফরম্যান্স সরঞ্জামগুলিতে নির্দিষ্ট স্তরের এল 2 ক্যাশে মিস প্রোফাইলিং ক্ষমতা রয়েছে তবে ক্যাশেগ্রিন্ড হিসাবে ব্যবহার করা যথেষ্ট ভাল এবং সহজ নয়।

5. ডিআরডি:

উইন্ডোজটিতে এখনও নিখরচায় এবং শক্তিশালী কিছু খুঁজে পাওয়া যায় নি, উইন্ডোজের একমাত্র বিনামূল্যে সরঞ্জামটি আমি দেখতে পেলাম যে সামান্য কাছাকাছি রয়েছে অ্যাপিভিফায়ারটিতে "লক" চেকার: http://msdn.microsoft.com/en-us/library /dd371695%28v=vs.85%29.aspx


2
এর রয়েছে gperftools (পূর্বে গুগল PerfTools) । এটি কোনও ভালগ্রিন্ড প্রতিস্থাপন নয় (আসলে কী) তবে এটিতে একটি নতুন ম্যালোক, সিপিইউ প্রোফাইলার, হিপ প্রোফাইলার এবং চেকার রয়েছে। এটি লিনাক্স এবং উইন্ডোজ (ইন মিংডাব্লু) এবং অন্যান্য সংযোগগুলিতে সমর্থন হিসাবে দেখায় th
অ্যালেক্সার

30

আপনার উইন্ডোজ অ্যাপটি ডিবাগ করতে কেন ভ্যালগ্রিন্ড + ওয়াইন ব্যবহার করবেন না? Http://wiki.winehq.org/Wine_and_Valgrind দেখুন

(স্মৃতি ত্রুটির জন্য উইন্ডোজ সংস্করণটি পরীক্ষা করতে ক্রোমিয়াম এটি ব্যবহার করে; build.chromium.org দেখুন এবং পরীক্ষামূলক বা মেমরির জলপ্রপাতগুলি দেখুন এবং ওয়াইন অনুসন্ধান করুন))

ডঃ মেমোরিও রয়েছে, ডায়নামরিও.আর। / ডিআরমিওরি। Html দেখুন


3
কারণ তখন আপনি কোনও উইন্ডোজ অ্যাপ ডিবাগ করবেন না - আপনি লিনাক্স অ্যাপটি ডিবাগ করবেন।
জন ডিবলিং

33
ওয়াইনে পুনরায় কম্পাইল করার দরকার নেই। আপনার .exe এবং .pdb কে কেবল একটি লিনাক্স বাক্সে স্থানান্তর করুন। আপনি লিনাক্স অ্যাপটি ডিবাগ করবেন না; আপনি আপনার সঠিক উইন্ডোজ অ্যাপটি ডিবাগ করছেন।
ড্যান কেগেল

2
ঠিক যেমন, খোঁড়া ক্লোনটির চেয়ে আসল জিনিসটি ব্যবহার করা আরও ভাল: ডি প্রেম ভালগ্রিড।
বিকল্প

11
নিস! উইন্ডোজ থেকে আপনি ভার্চুয়াল মেশিনটি চলতে পারেন লিনাক্স, আপনার সফ্টওয়্যারটি প্রায় ভিএম ওয়াইনে, ভালগ্রাইন্ড ভিএম-তে চালানো। উইন্ডোজ
ভিএম এর

15

ভিজ্যুয়াল সি ++ এর জন্য, ভিজ্যুয়াল লিক সনাক্তকারী চেষ্টা করুন । যখন আমি এটি ব্যবহার করেছি, এটি একটি newকল থেকে একটি মেমরি ফাঁস সনাক্ত করেছে এবং ফাঁসের উত্স কোডটিতে আসল লাইনটি ফিরিয়ে দিয়েছে। সর্বশেষ প্রকাশটি http://vld.codeplex.com/ এ পাওয়া যাবে


এটি আমার পক্ষে কাজ করবে বলে মনে হয় না। এমনকি আমি একটি সাধারণ প্রকল্প তৈরি করার চেষ্টা করেছি যা মূলত কিছু মেমরি বরাদ্দ করা এবং এটি বিনামূল্যে না করে ছাড়া অন্য কিছু করেনি। ভিএলডি এটি সনাক্ত করতে পারেনি। : - |
Synetech

@ সিনিটেক ইনক VS2010 এ আমার একই সমস্যা ছিল ... ভিএলডি-র নতুন সংস্করণ ব্যবহার করে আমার সমস্যাটি সমাধান হয়েছে
রিলাক্সএক্সএক্স

14

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


6
এটি ব্যবহারিক ব্যবহার খুব কম। আপত্তিজনক বরাদ্দের জন্য এটি ফাইলের নাম / লিনেনবার লগ করবে, তবে আপনি কেবল মলোককে কল করলে এটি কেবল তথ্যবহুল। নতুন / মোছা ব্যবহার করার সময়, এটি অনিচ্ছাকৃতভাবে নতুনকে "আপত্তিকর" কোড হিসাবে চিহ্নিত করবে।
user9665

3
এটি আমার পক্ষে সঠিকভাবে কাজ করে, ডান লাইনটি নির্দেশ করে এমনকি নতুন / মোছা ব্যবহৃত হয়।
রডরিগো

কিন্তু কোনও লাইব্রেরির ফাংশন বরাদ্দ দিলে এটি কাজ করবে? যেমন স্টার্ডআপ rd
অ্যালেক্স বুদোভস্কি

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

1
@ ইউজার 6665 ভিজ্যুয়াল লিক ডিটেক্টর ( vld.codeplex.com ) প্রতিটি মেমরি ফাঁসের জন্য ন্যূনতম স্যুসের কোড পরিবর্তনের সাথে সম্পূর্ণ কলস্ট্যাক সরবরাহ করে। সাইটে উদাহরণ চেক করুন
KindDragon

14

আমি কিছু সরঞ্জাম তালিকাবদ্ধ করতে চাই, আশা কার্যকর হবে

আরও বিস্তারিত জানার জন্য এই নিবন্ধটি পড়ুন

  1. শোধন করা
  2. বাউন্ডস চেকার
  3. কভারসিটি (মূলত এটি একটি কোড বিশ্লেষক তবে, এটি স্থিরিতে মেমরি ফাঁস ধরা দেবে)
  4. গ্লো কোড
  5. dmalloc
  6. ccmalloc
  7. NJAMD
  8. YAMD
  9. Valgrind- র
  10. mpatrol
  11. বীমা ++,


12

উইন্ডোজের ডিবাগিং সরঞ্জামগুলির পেজহীপ.এক্স.এই অংশ রয়েছে। এটি নিখরচায় এবং মূলত একটি কাস্টম মেমরি বরাদ্দকারী / ডেলোকোটার।

Http://support.microsoft.com/kb/286470 দেখুন


পেজহীপ / জিএফপ্লাগগুলি আমাকে কিছু বাজে হ্যাপ দুর্নীতির সমস্যার তলায় যেতে সহায়তা করেছে।
the_mandrill

আমি gflags+ gdb(মিংডাব্লু থেকে) নির্ণয়ে সহায়ক বলে মনে করেছি।
Jarekczek

8

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


6

আমি অতীতে কমপ্যুয়ার ডেভ পার্টনার স্টুডিও ব্যবহার করার সুযোগ পেয়েছিলাম এবং এটি সত্যিই ভাল ছিল, তবে এটি বেশ ব্যয়বহুল। একটি সস্তা সমাধান হ'ল গ্লোকোড হতে পারে , আমি কেবল একটি 5.x সংস্করণ নিয়ে কাজ করেছি এবং, আমি কোনও প্রক্রিয়া সংযুক্ত করার ক্ষেত্রে কিছু সমস্যা সত্ত্বেও, ডিবাগ করার জন্য এটি বেশ ভালভাবে কাজ করেছিল।


ব্যয়বহুল হ্যাঁ এটি কেবলমাত্র প্রোফাইলার অংশটি ব্যবহার করে এক সপ্তাহের শেষে ফেরত দিয়েছিল।
এভিলটিচ


5

ভাইরাসুয়াল স্টুডিও মেমরি ফাঁস নিজেই সনাক্ত করতে সহায়তা করতে পারে। দেখুন Microsoft ভিসুয়াল সি ++ টিপস এবং ট্রিকস -> "মেমরি তথ্য ফাঁসের" বিভাগে। এসও এই পোস্টটি দেখুন

যদিও আসল ট্রেসিং কেবলমাত্র ভিজ্যুয়াল স্টুডিওর টিম সম্পাদনা দিয়েই সম্ভব।


4

অনুরূপ সরঞ্জামগুলির তালিকার জন্য সফ্টওয়্যার কিউএ টেস্টিং এবং পরীক্ষার সরঞ্জাম সংস্থান পৃষ্ঠাতে " উত্স পরীক্ষার সরঞ্জামগুলি " লিঙ্কটি দেখুন ।

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



3

কোডের দৃust়তা উন্নত করতে এবং মেমরি ফাঁস পাওয়ার জন্য লিকডিয়াগ, ইউএমডিএইচ, অ্যাপ ভেরিফায়ার, ডিবাগডিয়াগ এই সমস্ত দরকারী সরঞ্জাম।


3

বুস্ট টেস্ট লাইব্রেরি মেমরি ফাঁস সনাক্ত করতে পারে।


3

কীভাবে শুদ্ধ ?


আসলেই নিখরচায় নয় ... তবে আমি অনুমান করি আপনি পরীক্ষার উদ্দেশ্যে পরীক্ষার লাইসেন্স পেতে পারেন।
ডেভিড রদ্রিগেজ - ড্রিবিস

বাউন্ডস চেকারের জন্য 2011-02-04 পর্যন্ত ডেড লিঙ্ক।
dwj



2

আপনি যদি বোরল্যান্ড / কোডগিয়ার / এমবারকাডেরো সি ++ বিল্ডারের সাথে বিকাশ করছেন তবে আপনি কোডগার্ড ব্যবহার করতে পারেন।


2

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

আমি ইন্টেলস সমান্তরাল পরিদর্শকের সুপারিশ করতে পারি । ব্যবহারে সহজ এবং কোনও পুনঃসংশোধনের প্রয়োজন নেই। ট্রায়াল সংস্করণ 30 দিন ধরে চলে।

গ্লোকোড এবং অ্যাট্রোমেটেডকিউতেও এই জাতীয় ক্যাপাবিলাইট অন্তর্ভুক্ত রয়েছে। তারা সবাই বিনামূল্যে ট্রায়াল দেয় offer

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


2
আমি অবশ্যই গ্লোকোডের প্রস্তাব দেব। আমি অতীতে এটি ব্যবহার করেছিলাম আমার অ্যাপ্লিকেশন দ্বারা ডেকে আনা একটি ডেলির মধ্যে একটি মেমরি ফুটো।
বব

আমার শেষ কর্মক্ষেত্রে ডেভ পার্টনার ব্যবহার করার সময় বড় ধীরগতির অভিযোগ ছিল। এটি কতটা ধীর হবে তার কারণে তারা এটিকে ব্যবহার এড়াতে সবকিছু করে।
কলিথ




2

আমরা উইন্ডোজের জন্য কেবল একটি মেমরি সুরক্ষা যাচাইকরণ সরঞ্জামটি সম্পূর্ণ করছি, এটি জিসিসি এবং মাইক্রোসফ্ট ভিজ্যুয়াল সি (এখনও সি ++ নয়) পরিচালনা করে এবং বিটা পরীক্ষকদের সন্ধান করছে।

এডিআইটি 12 জুন, 2011: বিটা আর নয়, এখন জিসিসি এবং মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও সি এর জন্য উত্পাদন production


2

আমি আজ এই এসএফ প্রকল্পটি পেয়েছি:

http://sourceforge.net/p/valgrind4win/wiki/Home/

তারা উইন্ডোজে ভালগ্র্যান্ড পোর্ট করছে। সম্ভবত বেশ কয়েক বছরে আমাদের উইন্ডোতে একটি নির্ভরযোগ্য ভালগ্র্যান্ড থাকবে।


1

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


1

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


1

আপনি মজিলা মেমরি ফুটো সম্পর্কে কী করছেন তা পড়তে চাইতে পারেন । তাদের সরঞ্জামবাক্সের একটি সরঞ্জাম হ্যান্স বোহহ আবর্জনা সংগ্রহকারী যা মেমরি ফাঁস সনাক্তকারী হিসাবে ব্যবহৃত হয়


1

আপনি আইবিএম পিউরিফায়াল ট্রায়ালটি চালানোর জন্য রানটাইমচেকার ট্রায়ালটি চেষ্টা করে দেখতে পারেন ..

ভিজ্যুয়াল স্টুডিওতে নিম্নলিখিত কোডগুলি ব্যবহার করা একটি নিখরচায় সমাধান হবে:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

আপনার সমস্ত সিপিপি ফাইলের শীর্ষে এটি লিখুন। এটি আপনার অ্যাপ্লিকেশনটির মেমরি ফাঁস সনাক্ত করবে যখন ডিবग রান থামানো হবে এবং আউটপুট উইন্ডোতে তাদের তালিকাবদ্ধ করবে। মেমরি ফাঁসের লাইনে ডাবল ক্লিক করা আপনাকে সেই লাইনের হাইলাইট করবে যেখানে মেমরি বরাদ্দ করা হয় এবং কখনই প্রকাশ হয় না। এটি আপনাকে সহায়তা করতে পারে: http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml

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