কোন ওপেন সোর্স সি ++ স্থিতিশীল বিশ্লেষণ সরঞ্জাম উপলব্ধ? [বন্ধ]


301

জাভা যেমন কিছু খুব ভাল ওপেন সোর্স স্ট্যাটিক বিশ্লেষণ সরঞ্জাম আছে FindBugs , Checkstyle এবং PMD । সেই সরঞ্জাম, একাধিক অপারেটিং সিস্টেম এবং এর রান ব্যবহার করা সহজ, খুব সহায়ক বিনামূল্যে

বাণিজ্যিক সি ++ স্ট্যাটিক বিশ্লেষণ পণ্য উপলব্ধ are এ জাতীয় পণ্যগুলি দুর্দান্ত হওয়া সত্ত্বেও, শিক্ষার্থীদের জন্য ব্যয়টি কেবলমাত্র অনেক বেশি এবং পরীক্ষার সংস্করণ পাওয়া সাধারণত শক্ত।

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

নীচে সি ++ স্ট্যাটিক বিশ্লেষণ সরঞ্জামগুলির একটি সংক্ষিপ্ত তালিকা দেওয়া হয়েছে যা অন্যরা খুঁজে পেয়েছিল বা তার পরামর্শ দিয়েছিল।

  • সি ++ http://sf.net/projects/cppcheck/ পরীক্ষা করুন
  • ওঙ্ক http://danielwilkerson.com/oink/index.html
  • সি এবং সি ++ কোড কাউন্টার http://sourceforge.net/projects/cccc/
  • বিভাজন (উত্তর থেকে)
  • মজিলার শুয়োরের মাংস (উত্তরগুলি থেকে) (এটি এখন ওঙ্কের অংশ)
  • মজিলার ডিহাইড্রা (উত্তরগুলি থেকে)
  • -Weffc++GNU g ++ (উত্তর থেকে) জন্য বিকল্প ব্যবহার করুন

অন্যান্য কিছু বহনযোগ্য ওপেন সোর্স সি ++ স্ট্যাটিক বিশ্লেষণ সরঞ্জামগুলি কী কী যে কেউ জানেন এবং তার প্রস্তাব দেওয়া যেতে পারে?

কিছু সম্পর্কিত লিঙ্ক।


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

1
বাণিজ্যিক সরঞ্জামের জন্য CppD depend ( cppd depend.com ) এছাড়াও রয়েছে এবং সম্ভবত পরীক্ষার সংস্করণটি শিক্ষার্থীদের পক্ষে পর্যাপ্ত হতে পারে।

উত্তর:


21

ওঙ্ক হ'ল এলসা সি ++ ফ্রন্ট-এন্ডের শীর্ষে নির্মিত একটি সরঞ্জাম। মজিলার শুয়োরের মাংস এলসা / ওঙ্কের কাঁটাচামচ।

দেখুন: http://danielwilkerson.com/oink/index.html


1
আমি আমার জীবনে 1000+ প্রোগ্রাম সংকলন করেছি, তবে Godশ্বরের প্রতি ভালবাসার জন্য আমি এই প্যাকেজটি संकलित করতে পারি না তা যাই হোক না কেন। আমি ফেডোরা, উবুন্টু, ডাব্লুএসএল, সাইগউইন, এমএসওয়াইএস 2, উইন্ডোজ - ব্যবহার করার চেষ্টা করেছি। কিছু কিছু সর্বদা অনুপস্থিত এবং ডকুমেন্টেশনগুলি কেবল সাদামাটা। আমাকে ভুল করবেন না, আমি অনুমান করি যে সরঞ্জামটি দুর্দান্ত। তবে ওয়েবসাইট এবং ডকুমেন্টেশনগুলি দেখে মনে হচ্ছে যে 10-15 বছরে কেউ তাদের স্পর্শ করেনি।
অ্যাপাচি

73

CppCheck ওপেন সোর্স এবং ক্রস প্ল্যাটফর্ম।

ম্যাক ওএসএক্স:

brew install cppcheck

1
@gio আমি কোনও সমস্যা ব্যক্তিগতভাবে দেখিনি। আমি বিশ্বাস করি যে সিপিসেকের কিছু নির্দিষ্ট পথ বা ফাইল উপেক্ষা বা বাদ দেওয়ার ক্ষমতা রয়েছে যা স্কোপটি সঙ্কুচিত করতে সহায়তা করে।
সু ওয়ে ওয়ে টান

1
উইন্ডোজে:choco install cppcheck
কিন্ডড্রেগন

53

জিএনইউ সংকলক সম্পর্কিত, জিসিসিতে ইতিমধ্যে একটি বিল্টিন বিকল্প রয়েছে যা -ওয়ালগুলির জন্য অতিরিক্ত সতর্কতা সক্ষম করে । বিকল্পটি হ'ল ওয়েফসি ++ এবং এটি স্কট মেয়ার্স এর " কার্যকর এবং আরও কার্যকর সি ++ " বইয়ে প্রকাশিত কয়েকটি গাইডলাইনগুলির লঙ্ঘন সম্পর্কে ।

বিশেষত বিকল্পটি নিম্নলিখিত আইটেমগুলি সনাক্ত করে:

  • গতিশীল বরাদ্দ মেমরির ক্লাসগুলির জন্য একটি অনুলিপি নির্মাণকারী এবং একটি অ্যাসাইনমেন্ট অপারেটর সংজ্ঞায়িত করুন।
  • কনস্ট্রাক্টরগুলিতে এসাইনমেন্টকে অগ্রাধিকার দিন।
  • বেস ক্লাসগুলিতে ডেস্ট্রাক্টরগুলিকে ভার্চুয়াল করুন।
  • "অপারেটর =" এর * এর একটি রেফারেন্স ফিরিয়ে দিন।
  • যখন আপনাকে অবশ্যই কোনও অবজেক্ট ফিরিয়ে দিতে হবে তখন কোনও রেফারেন্স ফেরানোর চেষ্টা করবেন না।
  • উপবৃত্তি এবং হ্রাস অপারেটরগুলির উপসর্গ এবং পোস্টফিক্স ফর্মগুলির মধ্যে পার্থক্য করুন।
  • "&&", "||", বা "," কখনই ওভারলোড করবেন না।

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

24
ইয়াক, প্রচুর সংখ্যক কনস্ট্রাকশন -Weffc++সম্পর্কে সতর্ক করে যা একটি বিশাল কোডবেসে পুরোপুরি সূক্ষ্ম। যদিও আমি এর পরামর্শটি দ্বিতীয় স্থানে রেখেছি ; এটি ছাড়া বাসা ছেড়ে না! -Wextra
টম

29

আপাতত বিকাশাধীন, তবে ঝাঁকুনি সি বিশ্লেষণ করে এবং সময়ের সাথে সাথে সি ++ হ্যান্ডেল করার লক্ষ্যবস্তু। এটি এলএলভিএম প্রকল্পের অংশ ।

আপডেট : ল্যান্ডিং পৃষ্ঠাতে "বিশ্লেষকটি একটি ধারাবাহিকভাবে কাজ চলছে", তবুও এটি এখন সি এবং সি ++ উভয়ের স্থিতিশীল বিশ্লেষক হিসাবে নথিভুক্ত

প্রশ্ন: স্থির বিশ্লেষণের জন্য আমি কীভাবে জিসিসি / ঝনঝন চালাতে পারি? (শুধুমাত্র সতর্কতা)

সংকলক বিকল্প: -ফায়ানট্যাক্স-কেবল


1
এলসিভিএম একটি অত্যন্ত আকর্ষণীয় প্রকল্প যা জিসিসির সাথে তুলনা করে, কম সময়ের মধ্যে মো পুনরায় অনুকূলিত বাইনারি তৈরি করে; এবং ঝনঝন, যখন সম্পূর্ণ হবে, এর সম্মুখ প্রান্ত হবে ...
নিকোলা বোনেলি

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

17

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

সংক্ষেপে:

-প্যাডেন্টিক -ওয়াল-ওয়েক্সট্রা -ডাব্লাইট-অলাইন -ডাব্লাস্ট-কোয়েল -ভেক্টর-ডটার-প্রাইভেসি -ডিজিড-অপটিমাইজেশন -Wformat = 2-উইনিট-সেল্ফ -Wlogical-op -Wississing- ডিক্লারেশনস-উইসিং-অন্তর্ভুক্ত-ডায়ারস- WNexcep -Wold -স্টাইল-castালাই-ওভারলোডেড-ভার্চুয়াল -আপনার-ওয়ার্ল্ড্যান্ট-ডিক্স -শ্যাডো -উসইন-রূপান্তর -সাইন-প্রমো -স্ট্রিট-নাল-সেন্ডিনেল -স্ট্রিট-ওভারফ্লো = 5 -উসুইচ-ডিফল্ট -উন্ডফ-ওয়ারিয়ার -নিউ-অব্যবহৃত

মনে রাখবেন যে এগুলির কয়েকটিতে জিসিসির একটি নতুন সংস্করণ প্রয়োজন, সুতরাং আপনি যদি 4.5 বা কোনও কিছুতে আটকে থাকেন তবে আপনাকে সেগুলি আপনার তালিকা থেকে মুছে ফেলতে হবে।


14

জন কারম্যাক "স্ট্যাটিক কোড এনালাইসিস" এর এই আকর্ষণীয় ব্লগ পোস্টে পিভিএস-স্টুডিওরও উল্লেখ করেছেন ।


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

7

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

cl /analyze Sample.cpp

এটি কোন সংস্করণ এবং সংস্করণে পাওয়া যায়?

সংকলকটিতে নির্মিত বলে মনে হচ্ছে এটি নিখরচায়। সংহতটি সম্ভবত টিম সংস্করণ।
জেবিআরউইলকিনসন


4

স্প্লিন্ট সি এর জন্য বিল পূরণ করছে seems

আপনি যদি ওপেন সোর্স নির্দিষ্ট না করেন তবে আমি জিম্পেল সফটওয়্যারটি বলব এর PCLint সম্ভবত শ্রেষ্ঠ C ++ স্ট্যাটিক কোড পরীক্ষণের জন্য উপলব্ধ সরঞ্জাম এক। তবে অবশ্যই এটি উন্মুক্ত উত্স নয়।

ম্যাক ওএসএক্স:

brew install splint

2
তবে একক বিকাশকারীদের জন্য ব্যয়বহুল :) আমি আরও নিখরচায় পছন্দ করি
রবার্ট গোল্ড

6
বিভাজন সি এর জন্য, সি ++ নয়। আমি জানি না তারা কভারেজ প্রসারিত করার পরিকল্পনা করছে কিনা। আশা করি!
হ্যারল্ড বামফোর্ড

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

3

মাইক্রোসফ্টের PREFast উইন্ডোজ ড্রাইভার কিট এও উপলব্ধ। সংস্করণ 7.0 এখানে ডাউনলোডযোগ্য

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


প্রিফাস্ট আপনার বিল্ড প্রক্রিয়াটি অনেক ধীর করে দেবে, কোনও বাস্তব প্রকল্পের জন্য, আপনার বিল্ড সার্ভারটি এটি বহন করতে পারে না।
zhaorufei

@ ঝাউরুফেই: বেশিরভাগ স্থির বিশ্লেষণ "দ্রুত" নয়; সংজ্ঞা অনুসারে তাদের করার একটি খুব জটিল কোড বিশ্লেষণ কাজ রয়েছে। আপনি যদি বিল্ড ব্যয়টি সর্বদা পছন্দ না করেন তবে কেবল এটি alচ্ছিক করুন।
ইরা বাক্সার

2

আমরা একটি Eclipse CDT প্লাগ-ইন নামক মেট্রিকুলেটরে কাজ করছি। এটি এখনও বিকাশের অধীনে রয়েছে তবে কয়েকটি বড় মেট্রিক্স (যেমন এলএসলক, ম্যাককেব, এফেরেন্টকৌপলিং) ইতিমধ্যে প্রয়োগ করা হয়েছে।

Http://sinv-56013.edu.hsr.ch/redmine/projects/metricular/wiki/ ডকুমেন্টেশন দেখুন ভিডিও বিক্ষোভের এবং ডকুমেন্টেশন মত আরো বিস্তারিত জানার জন্য।

সর্বশেষতম রাতের বিল্ডটি আপডেট সাইটের মাধ্যমে ইনস্টলেশনের জন্য উপলভ্য: http://sinv-56013.edu.hsr.ch/metriculator/updatesite- nightly/ site/

আরও বিবরণ

মেট্রিকুলেটর স্ট্যাটিকালি সি ++ উত্স কোড বিশ্লেষণ করে এবং সফ্টওয়্যার মেট্রিক উত্পন্ন করে। কোডন চেকার হিসাবে মেট্রিকগুলি প্রয়োগ করা হয়। বিশ্লেষণের ফলাফলগুলি পৃথক দৃষ্টিতে অন্বেষণ করা যেতে পারে। প্রতিটি মেট্রিকের কনফিগারযোগ্য বৈশিষ্ট্য রয়েছে (যেমন 'ফাংশন প্রতি কোডের সর্বাধিক লাইন' এর জন্য একটি প্রান্তিক)) এই প্রান্তিকতা অতিক্রম করা একটি সমস্যার প্রতিবেদন করবে এবং উত্স কোড সম্পাদকটিতে একটি চিহ্নিতকারী তৈরি করবে।

মেট্রিকুলেটর দিয়ে আপনি করতে পারেন:

  • সি ++ ফাইল / ফোল্ডার / প্রকল্প বিশ্লেষণ করুন
  • মেট্রিক থ্রেশহোল্ডগুলি সংজ্ঞায়িত করুন এবং কোডানস পছন্দ পৃষ্ঠাটি ব্যবহার করে মেট্রিক সক্ষম / অক্ষম করুন
  • উত্স কোড সম্পাদকগুলিতে সমস্যা চিহ্নিতকারী রয়েছে
  • মেট্রিক ফলাফল অন্বেষণ করুন
  • ট্যাগ মেঘ হিসাবে মেট্রিক ফলাফল রফতানি করুন (আপডেট সাইটের মাধ্যমে optionচ্ছিক বৈশিষ্ট্য হিসাবে উপলব্ধ)

বর্তমানে মেট্রিকুলেটর নিম্নলিখিত মেট্রিকগুলির সাথে আসে:

  • ম্যাককেব (সাইক্লোমেটিক জটিলতা)
  • প্রতি প্রকারে EfferentCoupling
  • যৌক্তিক উত্স কোডের লাইন
  • প্রতি প্রকারের সদস্য সংখ্যা
  • ফাংশন প্রতি পরামিতি সংখ্যা

1

আপনার এক্স-ব্রাউজারটি ব্যবহার করা উচিত এটির জিম্যাক্সের সাথে দুর্দান্ত একীকরণ রয়েছে


1

কেউ মেল্টে (জিসিসি প্রসারিত করার জন্য একটি ডোমেন নির্দিষ্ট ভাষা) বা সিসিতে জিসিসি প্লাগইনগুলিতে (কিছু বেশি শক্তিশালী) কিছু কাস্টম বিশ্লেষণ করতে জিসিসির এক্সটেনশনের কোডও বানাতে পারে।


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

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

0

ডক্সিজেন কিছু নিয়ন্ত্রণ প্রবাহ বিশ্লেষণ করে এবং গ্রাফ তৈরি করে। এগুলি আপনি যা খুঁজছেন তা নাও হতে পারে তবে আমি তাদের দেখার জন্য দরকারী look

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