タグ

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

  • KMC Staff Blog

    2023年12月06日 GNU ldとLLVM lldのロケーションカウンタの扱いの違い 従来は LinuxApple などのリッチ OS のアプリ向けというイメージだった LLVM の高速リンカ lld ですが、LLVM 17 で GNU ld との互換性がほぼ完璧になり、AArch64/ARM/RISC-V のベアメタルツールチェーンでも GNU ld を置き換えできることが確認できました。そこで弊社の SOLID もリンクの高速化や Clang での LTO などを期待して lld 対応を進めているのですが、その時に 1 点だけ非常にわかりにくい非互換性に悩まされたのでメモしておきます。 続きを読む kmckk at 20:24│コメント(0)│LLVM|若槻 2023年10月26日 MSYS2のバグ?(Bad address) 業務でシェルスクリプトを書いていて、非常に不可解

  • ブルースクリーンで強制終了した原因を解析して教えてくれるフリーソフト「BlueScreenView」

    Windowsに何か深刻なエラーが発生した際には画面が真っ青になり、わけのわからない文字列が一瞬表示された後に強制再起動が発生するという心臓に悪い経験をした人は非常に多いと思いますが、結局のところ、一体何が原因でブルースクリーンになったのか、どうすればブルースクリーンを回避できるのかまではわかりません。 しかしこのフリーソフトBlueScreenView」を使うと、ブルースクリーン発生時に生成されるダンプファイルを見つけ出して解析して表示することによってエラーの原因を教えてくれるので、使い方によってはかなり便利です。Windows XP・Windows Server 2003・Windows Server 2008・Windows Vista・Windows 7の32ビット版に対応しており、将来的には64ビット版にも対応予定があるとのこと。 というわけで、ダウンロードとインストール、使い

    ブルースクリーンで強制終了した原因を解析して教えてくれるフリーソフト「BlueScreenView」
    keibut
    keibut 2009/08/14
    windbgかける前に。
  • ユメのチカラ: ソースコードの読み方

    ソフトウェア工学の標準的なカリキュラムにソースコードの読み方というのがあるのかないのか知らないが、プログラマとして最も重要な資質の一つにコードの読解力というのがある。 ついでに言えば、大学や専門学校であまり教えられているとはいえないけど、実践では常に必要とされているものとして、テストの方法論、デバッグの方法論、性能向上の方法論、メモリなど各種資源の削減方法論などなどがある。国際化、移植性なども重要な単元であるがソフトウェア工学の中で教授されていると言う話はあまり聞かない。コードのハック一般についてどこかで議論されているのだろうか。経団連あたりで議論しているのだろうか? 閑話休題。 ソースコードの読み方ということで、最近では「コード・リーディング」というそのものずばりの教科書も出ているので状況は好転しつつある。コードの読み方はオープンソースの時代になり、間違いなく広く情報を共有できるようにな

  • PowerPoint プレゼンテーション

  • DSAS開発者の部屋:オープンソースを楽しむエンジニアの一日 〜 コードを楽しく読む工夫

    C言語で書かれたソースコードを読んでいるとき、関数ポインタから呼び出されている機能の実体がどこに書かれているのかを探すのに苦しんだ経験はありませんか? 私はあります、いっぱいあります!! そんなときはどうするかというと・・・ 手順1: まずは気分転換をする! 手順2: そして気合いを入れ直す! 手順3: さらに気力で読み砕く! 手順4: 最後に根性で発見する! これが、ごく一般的な作業手順(?)かと思います・・・(ごめんなさい嘘です) でもまあ、実際にここまで出来れば、そのプログラムの大まかな構成とか癖みたいなものはだいたい把握できているはずなので、他の関数ポインタについてもある程度当たりをつけて見つけだすことが出来るようにはなるかと思います。 ・・・・・が、、できれば気合いと根性を使わずに追えるなら追いたいのが人情ですよね。 straceやltraceを使えばシステムコールやライブラリコ

    DSAS開発者の部屋:オープンソースを楽しむエンジニアの一日 〜 コードを楽しく読む工夫
  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • 既に起動しているプロセスをgdbで制御する:Geekなぺーじ

    デバッグやテストを行っていると、プログラムが無限ループに入り込んで返ってこないような状況が発生することがあります。 そのバグが再現の難しいものであれば「gdbを使って起動しとけば良かった。。。」というような気分になる時があります。 しかし、gdbには既に起動しているプログラムの制御を横から奪い取ってデバッグするというありがたい機能があります。 ここでは、既に起動しているプログラムをgdbでいじる方法を説明したいと思います。 実際にデバッグをする方法を説明するというよりは、gdbで動いているプロセスにアタッチする例を説明します。 その後のデバッグに関しては、いつものgdbの使い方をしていただければ大丈夫です。 とりあえずアタッチしてみる 既に起動しているプロセスをgdbを解析するのは非常に簡単です。 単にgdbでプロセスにアタッチするだけです。 gdbでプロセスにアタッチする方法は2つありま

    keibut
    keibut 2007/01/17
  • Debugging with GDB - 異なる言語の使用

    [Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]   異なる言語の使用 異なるプログラミング言語であっても共通点があるのが普通ですが、 その表記法が全く同様であるということはめったにありません。 例えば、 ポインタ pの指す値を取り出す方法は、 ANSI Cでは*pですが、 Modula-2ではp^です。 値の表現方法 (および表示方法) もまた異なります。 16進数は、 Cでは`0x1ae'のようになりますが、 Modula-2では`1AEH'のようになります。 いくつかの言語については、 言語固有の情報がGDBに組み込まれており、 これにより、 プログラムを記述した言語を使って上記のような操作を記述したり、 プログラムを記述した言語の構文にしたがってGDBに値を出力させることができます。

  • GDB マニュアル - Table of Contents

    GDB の要約 「GNU 一般公有使用許諾書」の和訳文書と再配布について ** 和文文書についての注意 ** 和文文書自体の再配布に関して GNU 一般公有使用許諾書 はじめに GNU 一般公有使用許諾の下での複製、頒布、変更に関する条項と条件 付録: あなたの新しいプログラムにこれらの条項を適用する方� 訳者の序 GDB の入出力の慣例 GDB が扱うファイルの解説 引数によるファイルの指定 コマンドによるファイルの指定 デバッグのためのプログラムのコンパイル方� GDB の下でのプログラム実行方� あなたのプログラムに渡す引数 あなたのプログラムの環境 あなたのプログラムのワーキングディレクトリ あなたのプログラムへの入出力 既に起動しているプロセスのデバッギング チャイルドプロセスを kill するには 停止と継続 シグナル ブレークポイント ブレークポイントの設定方� ブレークポイ

  • @IT:リモートデバッグとリモートツールの活用(1/3)

    ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第8回は、正しい要求仕様書に向けた第一歩となる「ヒアリング」について具体的な例題を使って解説します。

  • 1