のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

C/C++言語関連

ARM ドングル Windows7

フロッピーのドライバはXPまでしかなかった。ここのVISTA用はこちらからのとこか http://www.yokogawa-digital.com/arm/support/faq/index.php?LIC-A-11REALTEKのRTL8150のようだ。http://152.104.125.41/downloads/downloadsView.aspx?Langid=1&PNid=8&PFid…

スタックの範囲チェックはちゃんと動く

UCHAR g[WIDTH * HEIGHT]; int zzz; for (int y = 0; y <= HEIGHT; y++) { for (int x = 0; x < MAX_FONT_WIDTH; x++) { zzz = y * WIDTH + x; g[zzz] = 0; } }

C6201

[TestMethod] void TestMethod1() { // C6201 unsigned char x[10]; int i; for (i= 0; i <= 10; i++) { x[i] = 0; } }; 警告 1 warning C6201: インデックス '10' は、有効なインデックスの範囲 '0' から '9' (スタックが割り当てられた可能性のあるバッフ…

VS2008 C言語でもpure

安全または純粋 pureでコンパイルできてるってことは、 呼び出し可能なマネージ メソッドになってるってことなのかな?混合 clrでコンパイルすると、 ○静的なネイティブ ライブラリ ○ネイティブ DLL エントリ ポイント これらは、結合できるのかまだ、いまい…

VS2008 C言語でのアサートのメッセージ

アサートでメッセージを書きたいとき どうやればいいのか悩んだのでメモ書きこんな感じでロギングできるようになった。 System::String^ msg = getMesg("code =", code, " ファイル名=", filename); Assert::AreEqual((int)RTN_OK,(int)rtn, msg); ====…

VS2008のC言語でコードカバレッジ

コードカバレッジを測りたいときは、デバックなしで開始をしないとだめなかんじだ。 デバックだと、測定されないっぽい。

Visual Studio 2008 C言語での UnitTest

Cのファイルの拡張子を変えなくても、コンパイルできました。コンパイルオプションでC言語のファイル(拡張子は.c)を ”Cコードとしてコンパイル(/TC)”から ”C++コードとしてコンパイル(/TP)”へ 各C言語のファイルを変更する。これだけでテストプロジェクト…

Visual StudioでC言語のコードカバレッジ(1)-2 もう一つのやり方

テストプロジェクトのもう一つの作り方を以下に示していきます。①メニューのファイルから”新規作成(N)”の”プロジェクト(P)”を選択します。 ②新しいプロジェクトのダイアログが開きます。 ③プロジェクトのの種類(P)から”他の言語”の”VisualC++”の”テスト”を…

Visual StudioでC言語のコードカバレッジ(3)

コードカバレッジの結果をみるために、以下の操作を行っていってください。

C言語のソフトウェアメトリクス

C言語のソフトウェアメトリクスを測定するものを調べていたところ、 SourceMonitor(Windows)というものがありました。 http://www.campwoodsw.com/sourcemonitor.html複雑度10を超えると分割した方がいいらしい。SourceMonitor http://d.hatena.ne.jp/Wac…

Visual StudioでC言語のコードカバレッジ(2)

Visual StudioでC言語での単体テストの作り方単体テストの作り方を書いていきます。 C言語のサンプルコードとして以下のURLのarctanのプログラムをお借りしました。 http://mail2.nara-edu.ac.jp/~asait/c_program/sample0/pi.htm#section2

Visual StudioでC言語のコードカバレッジ(1)

テストプロジェクトの作り方Visual Studio 2008(Development Edition)でC言語のコードカバレッジを行ってみようと思いました。 C言語のままではVisualStduioはコードカバレッジをしてくれないので、 C++としてコンパイルします。まずは、テストプロジェクト…

Splintの見方

Flag Nameを見ると概要がわかると思います。 boolops branchstate charindex compdef compdestroy compmempass dependenttrans fcnuse kepttrans mustfreeonly nestcomment nullassign nullstate onlytrans predboolint predboolothers retvalother shiftomp…

Splintのcsv出力のとき 最後がエラーになりやすいみたいだ。

splint +csv aaa.csv src.c を行うと、ファイルを閉じる辺でエラーが出やすい。 ファイル自体は出力されているようだ。 Files unclosed: 1 [errno: 2] *** Please report bug to splint-bug@splint.org *** (attempting to continue, results may be incorre…

Splint 3.1.2 のWindows版がない。

Splint3.1.2のWindows用のBinaryがありません。 Linux用のソースをWindowsでコンパイルしてみようと思いましたが、 ファイルが足りないようです。

結局Splint3.1.2はUbuntuでやった。

Splint3.1.1で+csvのオプションを使用しようとすると、Windowsでうまく動かない。 Splint3.1.2はWindowsだと、うまく動作しない。 マニュフェストファイルとかの関係かもしれない。しょうがないので、最後の手を使った。 VmwareでUbuntu9.10をインストールし…

Splint3.1.2はNorton SONARに食べられる。

Splint3.1.2ビルドしてみたけど、 実行するとNorton SONARに食べられるようになった。 LARCH_PATH通したからかな? まあ、何か変な動きをしているらしい・・・Norton SONARが何で食べるのかよくわからない。 食べるなら理由を詳しく書いて欲しい。世の中の人…

splint 3.1.2 standard.lcdファイルがない

splint3.1.2をリダイレクトしてみたところ、 standard.lcdが読めないと出ていた。 環境変数のLARCH_PATHで指定するようだ。standard.lcdファイルがない。 3.1.2のsrcにあったのでそちらからコピー posix.lcd posixstrict.lcd standard.lcd standardstrict.lc…

Splint 3.1.1のWindows版 発見

FAQの中にWindows版の場所が書いてあった。 http://www.splint.org/win32.html http://www.splint.org/downloads/binaries/splint-3.1.1.win32.zipでも、csvのフラグつけると途中で出力止まっちゃうな。 だめっぽい。

Splintのオプション(CSV出力)

コマンドラインで Splint +csv aaa.csv xxx.c を実行すると、CSVファイルが出力されます。

Doxygen Wizardの設定

①Projectの設定 ワーク用のディレクトリを設定します。(例 d:\DX\PJ) プロジェクトネームを設定します。 (例 ProjectName) プロジェクトバージョンを設定します。(例 1.0) ソースのあるディレクトリを設定します。(例 d:\DX\PJ\SRC) Scan Recursivel…

C言語の関数の関係を視覚的にするツール(Doxygen)のインストールについて

Doxygenは、C言語の関数の関係(コールグラフ)を視覚的に見えるhtmlなどのドキュメントを生成できます。 Doxygenのインストールを以下のようにして行います。 Doxygenのダウンロード DoxygenのホームページからWindows用のバイナリーをダウンロードします。…

splineのオプション(display)

Splineのディスプレイオプションについて linelenとlimitsフラグは+でも-でも同じ意味。 その他は+がフラグON、−がフラグOFF Numeric Argumentは数字の引数がいるオプション Filename Argumentはファイル名の引数がいるオプション csv ファイル名 +csvoverw…

SH SQMlintのMISRA-C(1998)の結果

MISRA-C 1998について出力された一覧例です。

MISRA-C SHの評価版でテスト

High-Performance Embedded Workshopの評価版 SQMlintの評価版ビルド>SuperH RIsc ToolChainを開く。 カテゴリのドロップダウンメニューにを選択すると MISRAのオプションが選べるようになります。 評価版だとMISRA2004は選択してもコンパイルエラーになり…

Splint C言語の静的解析ツール

C言語のソースの静的解析ができるという Splintというツールを使ってみました。

VisualStudio2008でC言語の静的コード解析

TeamEditionでしかできなそうですが、 VisualStudioでC言語の静的コード解析ができるようです。 プロジェクトのプロパティで ”ビルド時にC/C++のコード分析を有効にする”を”はい” に変更し、リビルドすればいいようです。 結果は、 こんな感じででるようです…