2020年2月12日水曜日

開発時の予期しない問題の予防1

こんにちは

ソフトな道をほのぼのと今日も歩きます。


今回は、開発している時に、やっておいたほうがよいことを記載します。


こちらを行うことで、認識していない不具合の遭遇をある程度予防できると

思います。


なぁんだ、そんなことか?と言った内容ですので、さらっと見るだけでもいいと思います。


------------------------------------------------------------------------------------------

1.条件文のその他の処理をどうするかを考えておく。


2.デバッグメッセージをソース内に組み込んでおきます。その際”#ifdef”で

表示/非表示切り替えが容易に行えるようにしておきます。

------------------------------------------------------------------------------------------



“1.条件文のその他の処理をどうするかを考えておく。”

こちらswitch文のdefaultの処理を作りましょうということです。if文の場合、elseでしょうか。

意外とこういうところから意味の分からない現象につながっていく危険性があります。


“2.デバッグメッセージをソース内に組み込んでおきます。その際”#ifdef”で

表示/非表示切り替えが容易に行えるようにしておきます。”

これは、デバッグ用メッセージを利用して、不具合の特定/対策などが早期にできるようにする私なりの工夫となります。

以下、一例です。

-----------------------------------------------------------------------------------------------

[test.c]

switch ( state& 0x7 ) {

case TEST_SENSOR_1:       

#ifdef DEBUG_TEST_MESSAGE

    printf("test sensor_1: 開始センサアクティブ (%s %d) \n", __FILE__, __LINE__);

#endif

[test.h]

#define   DEBUG_TEST_MESSAGE

-----------------------------------------------------------------------------------------------

test.cに#ifdef ”キーワード”としておき、

ヘッダファイル”test.h”にてキーワードを定義する/しないによって#ifdef内が

有効/無効になります。

こうしておくと、runして2二日後に原因不明なハングが発生といった

やっかいな不具合の調査時に役に立ちます。(絞り込みを行うことができます。)


今回は以上です。


[環境]

私の使用環境は VMware 上でUbuntu14.04を使用しています。

コンパイラ: arm-linux-gnueabihf-gcc


最近、東京は国際人が多くなりましたね。


新型コロナではないですが、本人は気づいていない(潜伏期間の人)が


他国の人(免疫の無い)に伝染病をうつしてしまう可能性がないか、


気になってしまいます。


いずれにしても、人混みは避けたほうが良さそうですね。



0 件のコメント:

コメントを投稿