質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
GDB

GDBはGNUソフトウェアシステムのための標準的なデバッガーです。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Q&A

解決済

1回答

8727閲覧

GDBでプロセスにアタッチした時、ファイルが見つからずにソースコードが表示できません

t4gforce

総合スコア5

GDB

GDBはGNUソフトウェアシステムのための標準的なデバッガーです。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

0グッド

0クリップ

投稿2020/07/24 12:11

編集2020/07/24 12:14

前提・実現したいこと

sleepコマンドを実行し、そのプロセスをgdbでアタッチしました。

bash

1$ sleep 100 2 3$ ps aux | grep sleep 4kali 3116 0.0 0.0 3436 748 pts/1 S+ 21:03 0:00 sleep 100 5kali 3118 0.0 0.0 4264 892 pts/0 S+ 21:03 0:00 grep sleep 6 7$ gdb 8GNU gdb (Debian 9.2-1) 9.2 9Copyright (C) 2020 Free Software Foundation, Inc. 10License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 11...省略... 12For help, type "help". 13Type "apropos word" to search for commands related to "word". 14(gdb) attach 3116 15Attaching to process 3116 16Reading symbols from /usr/bin/sleep... 17(No debugging symbols found in /usr/bin/sleep) 18Reading symbols from /lib/x86_64-linux-gnu/libc.so.6... 19Reading symbols from /usr/lib/debug/.build-id/85/03b2a6ce9ceecf5795f86b3b20a90fcb5efb77.debug... 20Reading symbols from /lib64/ld-linux-x86-64.so.2... 21Reading symbols from /usr/lib/debug/.build-id/a5/7f5fd51ff26337171bbbf6e8303528722c7136.debug... 220x00007f9f0bf23e93 in __GI___nanosleep (requested_time=0x7ffec1bd2220, remaining=0x0) 23 at ../sysdeps/unix/sysv/linux/nanosleep.c:28 2428 ../sysdeps/unix/sysv/linux/nanosleep.c: そのようなファイルやディレクトリはありません. 25

その後、gdbのlistコマンドでsleep周辺の処理を見たいのですが、nanosleep.cが見つからないので処理を見ることができません。
「../sysdeps/unix/sysv/linux/nanosleep.c: そのようなファイルやディレクトリはありません.」となってしまうのですが、どうにか解決できないでしょうか。
よろしくお願いいたします。

発生している問題・エラーメッセージ

bash

128 ../sysdeps/unix/sysv/linux/nanosleep.c: そのようなファイルやディレクトリはありません. 2(gdb) list 323 in ../sysdeps/unix/sysv/linux/nanosleep.c

試したこと

アタッチしたプロセスの情報は以下になります。

bash

1(gdb) info proc 2process 3116 3cmdline = 'sleep 100' 4cwd = '/home/kali' 5exe = '/usr/bin/sleep'

補足情報(FW/ツールのバージョンなど)

OS : Kali Linux 2020.2
GDB : 9.2-1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

libcのソースファイルが見つからない(ソースを表示できない)からです。
自分がコンパイルしていないライブラリの中をGDBで追跡するを参考にソースを取得・設定して見てください。

libc6ではなくglibcかも?
ソース保存用の適当なディレクトリを掘って、その中でapt-get source libc6apt-get source glibcかな?

投稿2020/07/24 12:41

編集2020/07/24 12:46
SHOMI

総合スコア4079

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t4gforce

2020/07/24 13:43

教えていただきありがとうございます。 apt-get source libc6を実行後、gdbのdirectoryでパスを通すと処理を追いかけることができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問