Help us understand the problem. What are the problem?
近年の大規模・複雑化したプログラムにおいて、不具合の検出はますます困難になっています。 特にオーバーフローや未初期化変数の使用などのバグは、致命的な不具合につながるだけでなく、それに加えて複数のファイルにまたがる「特定のパス」を実行した時にのみ発生することもあり、デバッグでの検出には労力を要します。 さらに、どんなに時間をかけても目視によってすべての実行パスを検証することは、現実的ではありません。 静的解析ツールC++testでは、このような致命的なバグが潜んでいる場合でも、静的解析の「フロー解析」機能で、プログラムのあらゆるパスをシミュレートし、バグを早期に発見します。また、ソースコード品質の底上げに貢献する「コーディング規約チェック」機能を搭載しているため、バグの作りこみを抑制し、ソースコードの可読性と保守性を強化します。 静的解析とは静的解析は、ソフトウェアの解析手法の一種で、コード
C/C++の静的解析は、どう考えても大変なんだけどどう考えても需要が高いので、やはり色々なソフトウェアや事例があるようだ。まとまった情報が欲しいけど見つからなかったので自分の調べた範囲でまとめることにした。 他にも耳寄りな情報があったら教えてほしい。 静的解析を行うことができるソフトウェア 調べてみると結構たくさんある。それぞれの特徴とかあまりよくわからない。 (個人的には、とりわけ網羅的な形式的検証ができるツールの性能に興味があるので、それを中心に集めていたが、やはり網羅的とは限らないで探すともっとたくさん見つかるようだ。もちろん網羅性にはトレードオフがある) Frama-C …… C言語に形式手法を適用するための汎用のフレームワークで、静的検証のためのプラグインも多数(WPとかValueとか)存在する。網羅的な検証から発見的な手法、動的な手法まで様々ある。研究で使うのに便利そう Ast
メモリ解放漏れ・メモリ二重解放は組込みエンジニアにとって、背筋が凍る単語だ。 それは、即、残業しなさいという意味に転じる。 そこから、泥沼のデバッグにハマることがよくある。 そんな課題をスマートに解決するために、メモリ解放漏れやメモリ二重解放を検出するツール調べてみたので、メモメモ。 オープンソース CppCheckのインストールをしよう# Cppcheckを使うことでメモリ解放漏れを静的解析で見つけることが可能だ。CppCheckはその他にも、アロケーション(確保と解放)の不一致(メモリ二重解放),バッファオーバーランの検出ができる。OSSなので、誰でも無料で利用可能。 CppCheckのダウンロードはココから Cppcheckの使い方の日本語訳は、以下のサイトで公開されている。 (ものすごく感謝!)今回はこれを参考に自分でも試してみる。 cppcheck 日本語マニュアル - 一人ぼっ
次のようなプログラム test.c について考える: #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <string.h> struct test { int32_t len; int8_t buf[16]; }; int main(int argc, char *argv[]) { struct test *p = malloc(sizeof(struct test)); int8_t buf[16]; p->len = sizeof(p->buf); bzero(p->buf, p->len); printf("0x%lX-0x%lX => 0x%lX\n", (long)p->buf, (long)p->buf+p->len-1, (long)buf); bcopy(p->buf, buf,
Memcheck is a memory error detector. It can detect the following problems that are common in C and C++ programs. Accessing memory you shouldn't, e.g. overrunning and underrunning heap blocks, overrunning the top of the stack, and accessing memory after it has been freed. Using undefined values, i.e. values that have not been initialised, or that have been derived from other undefined values. Incor
以前の記事にもLinuxでのメモリーリークの検出に関する事を書いたのですが、もう少し一般的なやり方を紹介しましょう(というより、自分で毎回忘れるので備忘録として・・・)。 【mtraceを使う方法】 まず、mtraceを使う方法です。リークのテストを開始したい場所でmtrace()をコールし、終了したい場所でmuntrace()をコールするようにします。 #include <stdio.h> #include <stdlib.h> char *test() { char *test=malloc(10); return(test); } int main() { char *ptr; mtrace(); ptr=test(); //*(ptr+10)='\0'; //free(ptr); muntrace(); return(0); } -gつきでコ
Information About News Tool Suite Supported Platforms The Developers Source Code Current Releases Release Archive Variants / Patches Code Repository Valkyrie / GUIs Documentation Table of Contents Quick Start FAQ User Manual Download Manual Research Papers Books Contact Mailing Lists and IRC Bug Reports Feature Requests Contact Summary Commercial Support How to Help Contributing Project Suggestion
2 Oct, 2012 · by admin · Read in about 3 min · (1044 Words) CppCheck cygwin OSS 組込み 静的解析 メモリ解放漏れ・メモリ二重解放は組込みエンジニアにとって、背筋が凍る単語だ。 それは、即、残業しなさいという意味に転じる。 そこから、泥沼のデバッグにハマることがよくある。 そんな課題をスマートに解決するために、メモリ解放漏れやメモリ二重解放を検出するツール調べてみたので、メモメモ。 オープンソース CppCheckのインストールをしよう Cppcheckを使うことでメモリ解放漏れを静的解析で見つけることが可能だ。CppCheckはその他にも、アロケーション(確保と解放)の不一致(メモリ二重解放),バッファオーバーランの検出ができる。OSSなので、誰でも無料で利用可能。 CppCheckのダウンロードはココから C
Slashdotで静的解析ツールの話題がでていたので忘れないうちに転載。もう完全に自分用 静的解析ツールはそこそこ役に立つ. FindBugs [sourceforge.net] PMD [sourceforge.net] Lint4j [jutils.com] codewizard [techmatrix.co.jp] DevPartner Studio Professional Edition [compuware.co.jp] COReTOOL/PGRelief [fujitsu.com] QAC [toyo.co.jp] QAC++ [toyo.co.jp] などなど… C/C++向けで自由にルールが作成できるオープンソースの実装は無いものか. オープンソースの静的解析ツールでしたら、 Splint [splint.org] RATS [securesoftware.com] Un
ウェブサイトの問題を報告するには、debian-www@lists.debian.org にメールを送ってください。その他の連絡先に関する情報は、Debian のコンタクトページをご覧ください。 Content Copyright © 1997 - 2024 SPI Inc.; ライセンス条項をご覧ください。 Debian は SPI Inc. の登録商標です。 このサイトについてさらに詳しく知るには.
メモリーリークのチェックツールを探していて、なかなか良いのがないなぁ、と思っていたところ、やっとのことで見つけたのがこの Valgrind。 最初、memwatch にトライしたんだけど、ソースに memwatch のヘッダをインクルードして、memwatch.c を一緒にコンパイル・リンクするという手順で、「ひょっとしたらこういうパターンはだめかな」というのを思いついて、試して見たら見事にだめだった(^^;。 だめなパターンというのは「exit でプログラムを終了させる」パターン。memwatch の手順からして「atexit でログを吐き出すようにしてるんじゃないかなぁ」と思って、「だと _exit で抜けたら、ログに吐き出せないよなぁ」と想像した次第。チェックしようとしているプログラムが _exit を使っているんで、これじゃぁ使えないと。 あと、mtrace も試して見たけど、確か
最も正確なシステム情報と診断機能を提供します。オンライン機能、メモリベンチマーク、ハードウェアモニタリング、低レベルのハードウェア情報も含んでいます。 特徴: -ハードウェアの全情報 -DirectX情報 -クロックアップ情報 -UPS、テープドライブサポート -診断モジュール -ベンチマーク -微調整機能 -ウェブリンク -お気に入りのページ -内蔵のハードウェアデータベース -Windows XPと完全互換 -Windows Server 2003と完全互換 -フルにローカライズされたユーザインターフェース(25ヶ国語) -TXT、HTML、MHTML形式でのレポート *日本語表示にするには、FileのPreferencesをクリックし、リストからJapaneseを選択してください。 試用版ダウンロードはこちら メーカーの製品サイト http://www.shareit.com/aff
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く