タグ

ブックマーク / 0xcc.net (8)

  • gdb tips - bkブログ

    gdb tips gdb を使う上で便利な tips を紹介します。基的な使い方をマスターしている人向けです。 .gdbinit の設定 ホームディレクトリに .gdbinit を置いておくと、gdb の起動の際に読み込まれます。私の場合は次のような設定をしています。 set history save on set history size 10000 set history filename ~/.gdb_history set print pretty on set print static-members off set charset ASCII set history から始まる最初の 3行は履歴に関する設定です。それぞれ、 gdb のコマンドラインの履歴をファイルに保存する、保存する行は最大 10000 行、ファイル名は ~/.gdb_history 、という意味になります。

    odawara
    odawara 2010/01/11
  • C++ のシンボルをデマングルする - bkブログ

    C++ のシンボルをデマングルする C++ コンパイラはシンボルが一意の名前を持つように名前マングル (name mangling) と呼ばれる処理を行います。記事では GNU の開発環境で C++ のシンボルをデマングル (demangle) する方法を紹介します。 マングルの方法はコンパイラ依存です。同じコンパイラでもバージョンによってマングルの方法が異なることがあります。たとえば GCC 3.x では int foo(int) を _Z3fooi に、 int foo(const char*) を _Z3fooPKc のようにマングルしますが、 GCC 2.95 ではそれぞれ foo__FPCc, foo__Fi となります。 コマンドラインからデマングル C++ のオブジェクトファイルに nm をかけると、デフォルトではマングルされた読みづらい形式でシンボルが出力されます。 %

  • GCC の最適化で printf が puts になる場合 - bkブログ

    GCC の最適化で printf が puts になる場合 GCC の最適化により printf の呼び出しが puts に置き換わることがある、と 先日、教えてもらったので試してみました。 次のような hello.c をまず最適化なしでコンパイルします。 #include <stdio.h> int main () { printf("hello, world\n"); return 0; } % gcc -o hello hello.c そして、実行可能ファイル hello を readelf コマンドで覗いてみると、 printf という文字列が見つかります。 puts は見あたりません。 % readelf -a hello | egrep 'printf|puts' 080495d0 00000207 R_386_JUMP_SLOT 00000000 printf 2: 0000

  • Binary Hacks のここがすごい - bkブログ

    Binary Hacks のここがすごい Binary Hacks の宣伝週間ということで、著者の一人である私から見て Binary Hacks のここが気に入っている、という点について書いてみたいと思います。 新しい発見がいっぱい Binary Hacks はメインの著者5人、コントリビュータ 6人という大人数で書かれています。各人が「これは役立つ」「これはおもしろい」というアイディアを持ち寄った結果、扱われているトピックは非常に多岐にわたります。著者間で内容のチェックをしたときも、「こんなことができたのか」「こういうこともできるよ」と新しい発見に大いに盛り上がりました。 「はじめに」にも書きましたが、これまで「知る人ぞ知る」的な傾向のあったノウハウを集めて誰にでも使えるようにすることが書の試みです。ほかのにはあまり載っていない情報がたくさん載っていると思います。ぜひ目次をご覧くださ

  • いやなブログ: 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す

    普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセスにちょっかいを出す方法を取り上げたいと思います。 ptrace とは デバッガの理論と実装 に次のような記述があります。 Unix の ptrace() は物のデバッガ API (アプリケーションプログラムインターフェイス) の一例であり、商品に相応しい品質を持ったデバッガをサポートするために設計された、最初の専用 API の1つである。 ptrace はデバッガ用に作られた API のようで

  • Binary 2.0 カンファレンス 2005 開催の経緯 - bkブログ

  • いやなブログ: Binary 2.0カンファレンス 2005 発表資料とレポート

    Binary 2.0カンファレンス 2005 発表資料とレポート Binary 2.0 カンファレンス 2005 は大盛況のうちに無事終了いたしました。開催にご協力いただいた皆様、スピーカーの皆様、参加していただいた皆様、大変ありがとうございました。 当日の発表資料とレポートをこのエントリでまとめています。参加報告などはこのエントリへのトラックバックで受け付けています。よろしくお願いいたします。 Binary 2.0 時代の到来 - 高林哲プログラムはなぜ Mona OS で動くか?fork?何それ? - ひげぽんDynamic Programming Language C -- 私は誰? - 浜地慎一郎g++と例外キャッチボール - 中村孝史G-Inspector -- GTK+ ランタイムインスペクション - 青笹茂実行時自己書き換え佳境 - 首藤一幸ハードコアバイナリアンへの道 -

  • Binary 2.0カンファレンス2005 - bkブログ

    Binary 2.0カンファレンス2005 Binary 2.0 カンファレンス2005 を 2005年12月2日に開催します。 主催 - Binary 2.0 カンファレンス実行委員会 (協力 Shibuya.pm)日時 - 2005年12月2日 (金) 18:30-21:30 (18:00 開場)会場 - 神保町三井ビル 17F 株式会社インターネットイニシアティブ (IIJ) 大会議室参加費 - 無料事前登録 - 定員100名 (定員に達したので締め切りました)プログラム 内容・順番・時間などは予告なく変更する場合があります。 無事に終了しました。当日の模様は 発表資料とレポートをどうぞ。 プログラム概要 Binary 2.0 時代の到来 - 高林哲 10分プログラムはなぜ Mona OS で動くか?fork?何それ? - ひげぽん 15分Dynamic Programming La

  • 1