はじめに はてなダイアリーのスーパーpre記法(ブログ本文にソースコード等を貼り付けるための記法)で始まるテキストがクリップボードに入った状態で、間違って、gdbのシェルに貼り付けてしまった。そしたら、見たことの無い画面が出現。これは便利すぎる。 Linuxカーネルのコードを読むのに欠かせない技になりつつあるので、メモとして残しておこう。 使い方 めちゃくちゃ簡単。「>」を入力するだけ。 (gdb) >バックトレースが取れる状態で、フレームを選択して、「>」を入力すると、そのフレーム周辺のコードを見るためのビューアーがgdb内に立ち上がる。ビューアを良く見ると、左上に、閲覧中のファイルのパス、左端に行番号が表示されている。 ↑↓キーでコードを移動できる。ちょっと前後のコードも確認したい時に重宝する。(gdb)のコマンド履歴を遡りたい場合はCtrl+P。その逆は、Ctrl+N。Emacsと同
Twitter上で、@alohakun が言及していた GDB の reverse debugging の機能を使ってみました。 GDB にトレースと逆実行機能入ったのか。 http://www.gnu.org/software/gdb/news/reversible.html http://twitter.com/alohakun/status/4481139191 まずは簡単な使い方を説明したあとに、インストール方法を説明します。 こんなときに便利 「変なこと」が起きている大体の場所がわかっているとき デバッグ中に、大体どこで変なことが起きているかはわかっているけど、細かい場所は特定できていないとき、reverse debuggingが効果を発揮します。 GDBでステップ実行をしていて、「しまった!行きすぎた!」という経験はよくあると思います。こういうとき、今まではプログラムの実行を最
「大規模ソフトウェアの効率的な理解(その1、2、3、4、5、6)」などという大袈裟なタイトルでブログを書いたが、今回は一気に実践編ということでフリーソフトウェア定番のデバッガ gdb の実践的使い方について記す。 プログラマの日々には、プログラムを書くためのエディタ、プログラムをコンパイル(あるいは実行)するためのコンパイラ(あるいはインタプリタ)、そしてプログラムを理解するためのデバッガという三種の神器が必須である。 この定番はわたしの場合xemacs/gcc/gdbである。前々職(DECという会社に務めていた)の場合、それぞれプロプライアトリな物を使っていたので微妙に異なるがやることは一緒である。 gdbは何のために利用するかというと、プログラムを理解するために利用する。デバッガなんだからデバッグのために利用するというのは、gdbの底力の半分も利用していないと言ってさしつかえない。 g
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く