SIMPLE 0 シリーズ : ザ・備忘録

仕事の事を書くし、勉強した事もかくよ

デバック作業の手順について

最近仕事でデバック作業に時間がかかりすぎている事がずっと気になっていたので、一回デバックの正しい流れとかあるのか調べてみた。

 

builder.japan.zdnet.com

 

上記記事を読んで思ったのは、やはりデバック手順をルーチン化することも大切なのではという事です。

 

  1. 原因究明
  2. 再現手順の整理
  3. 再現箇所と再現時の関数入力、出力値の確認
  4. ダメな場合は1に戻る

最低限これだけはやっておくべきなのかとも思いまた。

 

後、確認方法は今もやっている事ですが、デバックモードで気になるところにブレークポイントをかけ、ステップイン、アウトで順次処理を見ていくのが一番いいのかなと思います。

 

気にすべきことは上記だけかなと思ったら、ほかの記事を読んで

スタックトレースなる言葉を発見

デバッグのヒント教えます(2):スタックトレースからデバッグのヒントを読み取る - @IT

d.hatena.ne.jp

wa3.i-3-i.info

エラーコードには”エラーが発生するまでの過程”が記されていて、それを「スタックトレース」と呼ぶらしいです。

(今までエラーコード自体を検索かけてどんなエラーか認識するくらいしかしてなかったです…)

この際大切なことは”自分の作った関数に関する記述”今まで動いていたシステムに組み込んだ自分の関数等はバグを生む原因になり得やすく、注目すべきという事だろうか。

どの関数が呼ばれた後にエラーが出たのか等わかればよりスムーズにデバックが進みますね。今後はエラーメッセージをもっと読むように心掛けるべきですね

 

しかし自分はファームウェアを扱っているので、これだけでなくハード面も気にしてオシロスコープの扱い方も知る必要があるのかなと思いました。

 

安いオシロとかないんかね…

 

C#での数値表示について

  • TextBoxとLabelについて

電卓アプリを作っていて気づかされた事

 

ずっとTextBoxを電卓の数値入力場所にしていたんですが、数字&小数点1個のみ受け付けて文字は弾くようにしたいのに出来ませんでした。

 

そこで知人の鶴の一声「それ、Labelでよくね?」

 

た…確かに…。はい、うまくいきました。Labelだとアプリユーザの直接入力がまずできないので、ボタン入力のみ受け付けて、文字入力を弾く事に成功。

 

まぁTextBoxでも入力不可にする方法はおいおい探っていきたいです

コード作成 備忘録 : 構造体のキャスト、マスク化、OR演算、補数計算

  • 構造体から別の構造体へのキャスト

注意すべきことは

・キャスト対象の構造体の総バイト数と、キャスト後の構造体の総バイト数が同じである事

 

  • マスク化

qiita.com

 

itpro.nikkeibp.co.jp

 

 必要なビット以外をOFF(0)にする演算を「マスク化」と言う。この演算には"AND(&)"を使用する。

演算対象と同じヒット数の二進数を用意し、そのままの値にしたいところを"1"、OFFにしたい所を"0"にして&演算を行う。

 

また、マスク化の対関係となる演算として、特定のビットをON(1)にする演算を「セット」と言う。この演算は"OR(||)"を使用する。

演算対象と同じビット数の二進数を用意し、ONにしたい所を"1"、そのままにしたい所を"0"にしてOR演算を行う。

 

最後に、全ビットを無条件で反転させる演算を補数演算と言う。この演算は"~"を使用する。

対象ビットの前に"~"を付け、"~a"の様に書き使用する。これにより全ビットが反転する。

 

キーボードLED等の技術についてもゆくゆくまとめる

用語備忘録: 仕様書と設計書について

以下2つのサイトがなんかわかりやすかったので参考にしました

 

www.oxygendesign.jp

wa3.i-3-i.info

 

一つ目のサイトの最初に書いてたことがしっくりきた

  • 仕様書:「WHAT?何がしたいのか?」について書かれたもの
  • 設計書:「HOW?どのように作るのか?」について書かれたもの

これは正直理解していなかった。だから仕様書に書いてたコマンド一覧とかを関数と勝手に解釈してひとつひとつのコマンド用関数を実装したりしましたし…

 

んで、上記サイトに書いている文書の中で、仕様書、設計書を書く意味についてこんな文章があった

「今後システムを修正・更新していく際に、作業の見積もりや変更により影響の測定ができる資料でなくては意味がない」

 

仕様書を読んで「どんな事ができるシステムなのか」「どんな環境を想定して作成されるシステムなのか」を知り、設計書を読んで「どのような手順で、どんな構造で作成すればよいのか」を知る。そう想定された資料なのだそうだ

 

この考え方は資料作成の基礎となるものなので覚えておこうと思う

CPU基礎知識 備忘録:クロック数、クロックサイクル

クロックサイクルについて調べたかったんだけど、その前にCPUについて知識が少ないと感じていたので今更基礎から調査

CPUの性能の説明

 

  • CPU

パソコンの頭脳のようなもの。全体の制御や計算を行います。

  • ファン

CPUの近くにはファンがあり、CPUを常に冷やしています。

この理由はCPUが高い電力を集中して使用するため、かなり高温になり、そのままにすると焼けてしまうから

 

はい、用語自体は知ってたけど、なんでCPUが高温になるかの根本的理由をしりませんでした。電力かなりくうからだったのね

 

んで本題のクロックについて

続きを読む

用語の備忘録: 公開APIの定義

アプリケーションからOS等のプラットフォーム機能を利用したい時の橋渡し的存在となる

 

wikipediaプログラミングの際に使用できる命令や規約、関数等の集合の事(こっちの方がしっくりくる)

 

APIとは?FinTechで加速するAPI公開とオープンイノベーション

 

ヘッダファイルに宣言を明記し、ユーザに存在を周知したもののことをさすと言う話を聞きました