ストライク)孤児の少女フーカは、数十人の不良を一人で相手できるほど喧嘩が強いのですが、トレーニングジムの選手の少女たちには、まったく敵わないのでした。自力で強くなっただけあります。センスがあるので、少しのアドバイスで、訓練している選手を打ち負かすことができたのでした。良いものを持ってても、地道に訓練している人には勝てませんね。地道っていうのが大事です。訓練も継続しなければ上達はやってきません。継続するにはどうすれば良いでしょうか。目標や計画が必要といいますが、頭の硬い話だなあと思います。継続なんてものは習慣化するかどうかの問題でしょう。目標や計画がなくても習慣化はできるはずです。「計画を立てるべき」と、もっともなことを言う人ほど、継続をしていないなあと思います(もちろんやってる人もいると思いますが)。過去の自分を批判してみました。継続させるには、「よーし、やるぞ」と自分に宣言するだけでいいんです。プログラミングができても、デバッグができない、なんてこともあるかと思います。デバッグテクニックも、地道に身につけていこうかと思います。今回は条件breakです。いつものようにGDBを起動します。スペース区切りで複数の文字列を指定すると、改行されてバナー表示されますが、”Strike”の文字列の時の動きを見たいので、*argvが”Strike”になった時にブレイクするように指定してみます。C言語と同じで、文字列の一致ではなく、数値の一致になるので、**argv==’S’という形の条件設定となります。ソースを確認して、ブレイクする行を決めましょう。各文字列の処理の開始っぽい、133行目にブレイク設定します。displayで、オート変数も自動表示するようにしておきます。まとめられる変数は、括弧{}で、まとめます。次に、変数lineも登録したいですが、80Byteの配列となっています。このままでは以下のように全部表示されて見難くなります。文字列にキャストして表示します。文字列にキャストすることで、0(NULL)が出現するところまでしか表示されません。これをdisplayに登録しておきます。現状の設定を確認しましょう。実行(continue)してみます。“Strike”でブレイクしたのでしょうか、*argvを確認してみます。*argvが”Strike”になっていますね。続いてステップ実行(next)していきます。lenが10を超えているかのif文ですが、dispのlenの値を見ると6ですので、超えませんね。続いて、各for文をステップ実行します。(*argv)[b]ということは、bが、文字列の先頭からの位置をしめしていますね。bが文字列の長さつまり、len分回ります。ステップ実行してみましょう。この行にbreakでブレイクポイントを設定して、continueで一周してみましょう。変数cが1になりました。回数を指定してcontinueしてみます。次は変数cが7になるので、forから抜けますね。久々に見てしまいました。豪さんにぞっこんのランちゃんが、イッパツマンの正体に気づいてしまった時、イッパツマンは倒されてしまいます。動画はこのアニメの主題歌です。普通の人が魔法みたいなことができて、できない人が異常とみなされ追放される世界です。主人公は姫様なのに魔法が...13-2.GDBの操作sysvbannerの動きをGDBで追う(ステップ実行と変数表示)「sysvbannerの動きをGDBで追う(GDBの起動)」の続きです。mainにブレイクポイントを設定してrunした所から始めます。ステップ実行(ステップオーバー)は、「next」(省略「n」)です。脳内オセロの自動テスト(GDB)「脳内オセロで脳トレ」で作成した脳トレ用のコマンドラインオセロですが、試してみると使い勝手が悪かったので、いろいろ手直ししようと思います。ついでにバグも修正します。W...13-2.GDBの操作sysvbannerの動きをGDBで追う(GDBの起動)sysvbannerをGDBで動かしながら理解していこうかと思います。ソースを落としてきます。GDBでデバッグするために、Makefileに-gオプションを付けます。生涯見た中のベストテンに入る面白さでした。時間軸が逆からスタートするってところが、エンジニア心をくすぐります。email.ホーム13.ツール操作13-2.GDBの操作スポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。Policyホーム検索トップサイドバースポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。thanksタイトルとURLをコピーしました。