Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2004-06-01 [長年日記]
_ 天気
はれ。世間は衣更えの季節か。会社用の夏物のスーツでも考えるか。毎日着るし。
_ 駅なか英会話
次回は水曜日の18:00から19:30が最終。いってみようか
_ Debug symbol
会社にて、uim-ximが落ちた時に、gdbでバックトレースできるように、デバッグオプション付きでバイナリをつくる要求が生じた。
Debian packageを一時的にdebug symbolをつけてパッケージングしたかったら、
DEB_BUILD_OPTIONS
を活用するのがDebian風だと思う。Debian メンテナ入門 --- 第 4 章 - debian/ ディレクトリ以下に無くてはならないファイル(http://www.debian.org/doc/manuals/maint-guide/ch-dreq.ja.html>)にも記述がある。
パッケージ中のdebianディレクトリの中にrulesファイルがある。その中に
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
CFLAGS += -g
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
こんな部分がある。上記はDebianパッケージの生成時にdh_makeなどのテンプレートの中に含まれているとのこと(上記のメンテナーマニュアルより)で、CFLAGを有効にするには、どないしたもんかな。
google先生に"./configure CFLAGS"というキーワードで調べていると、OS XだがOS X ハッキング! --- 第89回 configure、何するものぞ (http://pcweb.mycom.co.jp/column/osx/089/)というのがみつかった。読みすすめると
CFLAG="$(CFLAG)" ./configure --ほげほげoption
とすると、コンパイル時のオプションを渡せることを知った。ということで、uimのパッケージを修正。
また、DEB_BUILD_OPITONSにnostripを入れておくと、dh_stripがストリップしないことも知る。ということで、BUILDする前に、環境変数DEB_BUILD_OPTIONSを設定(bashです)
$export DEB_BUILD_OPTIONS=nostrip,debug
$debuld -us -uc -rfakeroot -eDEB_BUILD_OPTIONS=debug,nostrip
とした。debuldの-eオプションについては、manなどを読んだが、私の理解ではこれだけでは設定できなかったので、exportしてある。
Debugシンボルがついているかの確認
どうするかよくわからんかったので、man nmしてみた。そこで nm --debug-syms でダンプしてみるとデバッグシボルが表示されるとのこと。mcをつかってパッケージ内のバイナリを/tmpにコピーして
nm --debug-syms /tmp/hoge
で確認してみた。ok そうにみえる。
ちなみにfileコマンドだと、ストリップしているかの判断はつくが、シンボルがついているかどうかの判断まではわからない。
/tmp/uim-xim: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), not stripped
_ [Eclipse] Rubyのプロジェクトだけ見える.
わたしのつくったeclipse-rdtに問題があって(削除したら直ったので)、一時期Javaのプロジェクトがつかえなくて、こまっていた。なぜかEclipse-jdtとかはいってなかったので当然なのだが。手順としては
- eclipse-rdtをremoveする
- Eclipseのjava関連をinstallする
で直りました。その後にapt-get install eclipse-rdtすると、思いどおりになりました。他の人にも伝えなくては...
eオプションは -us -uc とかの前でないと有効にならないっぽいです。(by 同じように悩んだヤツ
をを、そうでしたか。ありがとう。>-eオプション