普通のやつらの下を行け: BFDでデバッグ情報の取得 gcc に -g オプションを与えるとデバッグ情報をバイナリに埋め込むことができます。この情報は通常 gdb などのデバッガによって利用されますが、普通のプログラムでも利用できれば何かおもしろいことができるかもしれません。 普通のやつらの下を行けの第4回として、今回は BFD (libbfd) を用いてデバッグ情報を取得する方法を取り上げたいと思います。 BFD とは BFD (Binary File Descriptor library) は各種バイナリフォーマットに対して低レベルな操作を行うためのライブラリです。 GNU binutils に含まれています。Debian GNU/Linux なら次のコマンドでインストールできます。 % sudo apt-get install binutils-dev ここでは BFD の bfd_
Cython プログラムのデバッグ¶ Cython には、 Cython で書いたコードをユーザがデバッグできるよう、GNU デバッガ用の拡張があります。この機能を使うには、 Python サポート (Python 2.5 以降にリンクされたもの) を有効にした、バージョン 7.2 以降 の GDB をインストールする必要があります。 Python 3 の場合は、コードを Python 3 向けにビルドして、デバッガは Python 2 で (すくなくとも、 Python 2 向けにインストールした Cython を使える環境で) 実行せねばなり ません。 デバッガは、 Cython コンパイラのエクスポートするデバッグ情報を必要とし ます。デバッグ情報を有効にするには、 Cython の Extension クラスに pyrex_gdb=True を渡して setup します: from
__enter__ と __exit__ という見慣れないメソッドに触れる機会があったので、メモ。 python のバージョンは 2.7。 __enter__ と __exit__ の使い方 __enter__ と __exit__ を実装したクラスは コンテキストマネージャ と呼ばれ、 with 構文(with ステートメント)と組み合わせて使う。 with 構文とはこのような形。 with Foo('foo') as f: print f.xxx() with 文に入った時に __enter__ メソッドが呼ばれ、with 文を抜けるときに __exit__ メソッドが呼ばれる。 __enter__ と __exit__ を実装したクラスのサンプルは以下のようになる。 実行結果 __init__ __enter__ hoge None None None __exit__ どんな時に使
株式会社slideship は、クラウド上でプレゼンテーション・スライドの作成と公開が行える「slideship.com」を開発。本日よりベータサービスの提供を開始しました。 株式会社slideship(代表取締役社長:池内 孝啓 / 本社所在地:東京都新宿区 以下、slideship)は、「slideship(スライドシップ、以下、slideship.com)」を開発。本日よりベータサービスの提供を開始しました。 slideship ロゴ slideship.com は、”ブログを書くような手軽さで” プレゼンテーション・スライドを作成し公開できるクラウドアプリケーション (SaaS) です。 https://slideship.com ■ slideship.com の特長 slideship.com では、テーマを選択するだけで鮮やかさと視認性を両立した美しいスタイルのスライドが作成
昨日、ネットワークエンジニアではない方々向けのIPv6勉強会を行ってきました。 会場をご提供いただいた株式会社インターネットイニシアティブ様、ありがとうございました! 発表資料をSpeaker Deckで公開しました。 当日の参加者は約150名でした。一部、私よりも詳しいネットワークエンジニアも参加していましたが、全くIPv6に関しての前提知識がないと思われる方々や、自分でIPv6 IPoEを設定してみたというかた、これから実際に手を動かしてみたいというかた、仕事でこれから必要になりそうなので調べ始めたというかたなど、様々な方々が参加されていたようです。 「ネットワークエンジニアではない方々向け」という内容ではあるものの、「どういう説明をするのか見てみたい」というネットワークエンジニアの方々もいたことや、見たことがあるTwitterアイコンなどがconnpassに表示されていたので、顔見知
Is there a standard way of using exception chains in Python? Like the Java exception 'caused by'? Here is some background. I have a module with one main exception class DSError: class DSError(Exception): pass Somewhere within this module there will be: try: v = my_dict[k] something(v) except KeyError as e: raise DSError("no key %s found for %s" % (k, self)) except ValueError as e: raise DSError("B
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く