タグ

debugに関するnharukiのブックマーク (10)

  • 逆引き Linux アプリ開発デバッグコマンド

    逆引き Linux アプリ開発デバッグコマンド はじめに ローカル環境では検証したのに、実環境にデプロイしたら動かない。そんなとき printf を仕込んでリビルドしアップロード、を繰り返すばかりではなく、複数のデバッグ手段を持っていると開発効率が大きく上がります。 中核となるのは GNU bintuil と GCC toolchain です。しかしこれらのツール群は、 UNIX 哲学 に基づいて個々のコマンドがシンプルで素っ気ないうえ、日語の情報も少ないため、開発経験が長い方でも使い道を知らない場合があるようです。 そこで記事では、デバッグに使える様々なコマンドを、使い道ごとに並べて一覧化してみました。 なおコンパイラは gcc 前提に記載していますが、LLVM も概ね同じツールチェインが提供されているようです。 バイナリ解析 バージョンや実行ターゲットの取り違えなど、そもそも狙い通

    逆引き Linux アプリ開発デバッグコマンド
  • KMC Staff Blog:Androidのデバッグダンプからソース上の問題発生箇所を調べる方法

    2011年02月22日 Androidのデバッグダンプからソース上の問題発生箇所を調べる方法 今回もAndroidのアプリケーション開発者でなくて、ポーティングなどでシステム部分の問題を追いかける人が知っておくとよい話です。(English version of this page) 実機でいろいろいじくって動かしていると、いつまでもandroidの起動アニメーションのままになって立ち上がってこなくなってしまうことがあります。このときにシリアルのコンソールからlogcatを見てみると、以下のようにあるプロセスが例外を起こして落ちてしまっていたりします。 ログのこの部分はdebuggerdが出しています。(debuggerdのしくみは以前に紹介しました。) I/DEBUG ( 3037): *** *** *** *** *** *** *** *** *** *** *** *** ***

  • 実践 デバッグ技法

    ソフトウェア開発で不可欠なデバッグですが、知識と経験が求められるため熟練プログラマのなかにもデバッグが苦手という開発者は少なくありません。洗練されたデバッガを利用できても、デバッガのどの機能がどの場面で有効かを見極めるのは簡単ではないからです。書では、Linux/Unixプラットフォームでもっとも広く使われているGDB、DDD、Eclipseという3つのツールを取り上げ、各ツールに独自のデバッグテクニックはもちろん、コードに含まれるエラーを見つけ出して修正するプロセスを改善するための総合的な戦略についても解説します。翻訳版ではVisual C++でのデバッグ手法についても加筆しました。 関連ファイル サンプルコード(.zip) 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。

    実践 デバッグ技法
  • Electric Fenceを使ってみる

    $Id: howto-efence.html,v 1.1 2000/07/05 13:43:38 sakane Exp $ %Hd: Electric Fenceを使ってみる 何? 環境変数 マニュアルで推奨されている使い方 その他 o 何? 自分の技術力を越えたプログラム書く時に超便利なツール。 できる事 o バッファ・オーバーラン o バッファ・アンダーラン o 開放した領域を触る o サイズ 0の malloc を見つけることができる。 コンパイル時に libefence.a をリンクする事で malloc(3)や free(3)を置き換える。 欠点は o 激しくメモリを使う。 o プログラム動作が異常に遅くなる。 何はともあれ使ってみる。 #include #include #include int main() { char *c; c = malloc(4); c[3]

  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • Valgrind - Wikipedia

    Valgrind(ヴァルグリンド、[ˈvælɡrɪnd])は、メモリデバッグや、メモリリークの検出、スレッドエラーの検出、プロファイリングなどを行うための仮想機械を利用したソフトウェア開発ツールである。Valgrindという名前は、北欧神話におけるヴァルハラへの入り口の名に由来している[2]。 Valgrindは元々x86上のLinux用のメモリデバッグツールとして設計されたが、開発が進んだ結果、バグ検出やプロファイラといった動的解析ツールのための汎用のフレームワークとなっている。Valgrindは多数のLinux関連のプロジェクトで使用されている[3]。ValgrindはGNU General Public Licenseの元でリリースされているフリーソフトウェアである。 概要[編集] Valgrindは、質的にはJITコンパイラ(バイナリ変換)の技術を用いた仮想機械である。元々のプロ

  • Debugging

    "The realization came over me with full force that a good part of the remainder of my life was going to be spent in finding errors in my own programs." Last changed on $Date: 2003/04/15 04:18:55 $. A practicing programmer inevitably spends a lot of time tracking down and fixing bugs. Debugging, particularly debugging of other people's code, is a skill separate from the ability to write programs in

  • デバッグ方法論 - 未来のいつか/hyoshiokの日記

    「わたしがprintf()デバッグをしない理由」http://d.hatena.ne.jp/hyoshiok/20090322#p1 は思いのほか注目をあびた。せっかくなので、その続編とも言うべきことを書き記してみる。 ところで、皆さんは、誰にデバッグ方法を教えてもらったのだろうか?テストの方法を誰に教えてもらったのだろうか。あるいは、ソフトウェア開発方法論を誰に教えてもらったのだろうか。学校でならったのは、プログラミング言語の文法であり、アルゴリズムであり、コンピュータアーキテクチャであった。デバッグ方法は誰も教えてくれなかったので、見よう見まねで行っていたのが学生時代だったような気がする。 バイト先のちっちゃいソフトハウスでは、トラブルシューティングは二分検索でやるということを教えてもらったが、デバッグ方法についての、コーチはなかった。別のバイト先では、厳密なテスト方法について学んだが

    デバッグ方法論 - 未来のいつか/hyoshiokの日記
  • わたしがprintf()デバッグをしない理由 2009-03-22 - 未来のいつか/hyoshiokの日記

    プログラマという職業について、もう25年くらいになるのであるが、その間にコンピュータのコストパフォーマンスは、それこそムーアの法則に従って、10万倍〜100万倍くらい向上した。にもかかわらづ、デバッグの方法というものの劇的な変化はほとんどみられない。 プログラミング入門書では、デバッグについて、ほとんど議論されていないし、仮にふれられていても、おざなりな方法というか、かなり邪険にあつかわれていたりする。プログラマの多くの時間がデバッグについやされていたとしてもだ。 たまたま手元にあった、C実践プログラミング(ISBN4-900900-64-8)という10年くらい前に買った参考書では、450ページのうちデバッガの利用については、4行ほど記述がある。たった4行である。診断用のprintf()を挿入するということは3ページにわたって記述されているのにだ。 流石に21世紀になってprintf()デ

    わたしがprintf()デバッグをしない理由 2009-03-22 - 未来のいつか/hyoshiokの日記
  • デバッグより重要なもの : 404 Blog Not Found

    2009年04月02日16:00 カテゴリCodeArt デバッグより重要なもの この話題、すっかり乗り遅れてしまった。 2009-03-22 - 未来のいつか/hyoshiokの日記 プログラミング入門書では、デバッグについて、ほとんど議論されていないし、仮にふれられていても、おざなりな方法というか、かなり邪険にあつかわれていたりする。プログラマの多くの時間がデバッグについやされていたとしてもだ。 あえていわせていただく。コードはデバッグできるだけはるかにましなのだ、と。printfを使うかどうかなんぞ、その問題と比べれば屁ですらないのだと。 デバッグよりもはるかに重要なもの、それはデータ構造の選定。 ここで一歩間違えると、バグが仕様化し、デバッグどころかバグにあわせてプログラムを書かねばならぬ羽目になる。 その最も顕著な例が、Unicodeだろう。最初の設計を間違えたおかげで、最新のソ

    デバッグより重要なもの : 404 Blog Not Found
  • 1