
Ubuntu日本語フォーラム

ログインしていません。
FedoraやCentOSなどYUM系のdistributionにはdebuginfo-installというcommandが有ります。
debuginfo-install command
と指定してやれば、そのcommandや依存するshared objectのdebuginfoをまとめてinstallしてくれるという便利なcommandです。
これに相当する機能がUbuntuにも無いでしょうか?
現状gdbやlddを起動して依存しているshared objectを探し出し、そのshared objectがどのpackageに属しているかをdpkg -Sで調べ、一つ一つpackage-dbgをapt-getしています。
手間がかかります。
debuginfo-install command自体はyum-utilsというpackageにあることを確認したので、早速apt-get install yum-installしてみました。
しかし、このdebuginfo-installはYUM/RPM系packageを前提に作られています。
Ubuntu上ではほとんど役に立ちませんでした。
1) UbuntuにYUM系distributionにあるdebuginfo-installに相当する機能は無いでしょうか?
2) あるcommandに関連するdbg symbolを一気に取得するsmartな方法は無いでしょうか?
皆様のお知恵をお貸しください。
オフライン
ItSANgo による投稿:
現状gdbやlddを起動して依存しているshared objectを探し出し、そのshared objectがどのpackageに属しているかをdpkg -Sで調べ、一つ一つpackage-dbgをapt-getしています。
今やっていることを手順化してみました。
1. GDB でbacktraceを取る。
$gdb /usr/bin/nautilus core 2>&1 | tee bt.txt
(gdb) thread apply all bt
2. backtrace からlibrary名一覧を抽出する。
$awk '/from/ { print $NF }' bt.txt | sort -u >libs.txt
3. library名以外のゴミを取り除く。
$vi libs.txt
4. library名からpackage名を引く。
$dpkg -S `cat libs.txt` | awk 'BEGIN { FS = ":" } { ++p[$1] } END { for (i in p) { print i }}' >pkg.txt
5. dbg packageをinstallする。
$sudo apt-get install `sed 's/$/-dbg/' pkg.txt`
6. 失敗するpackageがあるなら削除して、5.をやり直す。
$vi pkg.txt
$sudo apt-get install `sed 's/$/-dbg/' pkg.txt`
もっとスマートな方法があれば教えてください。
オフライン