gdbにシンボルテーブルを指定していないか、プログラムが削除されたようです。
プログラムにアタッチするときに、gdbにアタッチする実行可能ファイルにシンボルテーブルを読み込ませるよう指示する必要があります。プログラムを-g(デバッグサポート)でコンパイルし、リンクパスがシンボルを削除していないことを確認してください。次のように続いて、GDBを実行します。
gdb myprog -p 804
をしかし、あなたはまた、(あなたがやったwhayある)付けずに実行し、添付することができます。
あなたはまた、どのようなプログラムファイル 実行するようにgdbを伝えるために
シンボルファイルコマンドを使用することができます
gdb myprog
GNU gdb (GDB) 7.10 for GNAT GPL 2017 [rev=gdb-7.10-ref-199-g7cfc608]
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
See your support agreement for details of warranty and support.
If you do not have a current support agreement, then there is absolutely
no warranty for this version of GDB. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from prog...done.
(gdb) attach 804
:
(gdb) symbol-file myprog
Reading symbols from myprog...done.
あなたのプログラムが削除された場合、GDBは
Reading symbols from prog...(no debugging symbols found)...done.
を印刷します
シンボルテーブルを読み込んだら、infを使用してgdbで認識されるソースファイルをリストすることができますo sourcesコマンド。これにより、シンボルテーブルで識別されたソースファイルが表示されます。
(gdb) info sources
Source files for which symbols have been read in:
.../b__myprog.adb,
.../b__myprog.ads,
/build/eglibc-SvCtMH/eglibc-2.19/elf/rtld.c,
/build/eglibc-SvCtMH/eglibc-2.19/elf/../sysdeps/generic/_itoa.h,
/build/eglibc-SvCtMH/eglibc-2.19/elf/../sysdeps/unix/sysv/linux/dl-osinfo.h,
...
あなたが使用できる別の興味深いコマンドは、infoファイルです。関連するシンボルファイルで特定されたプログラムセクションが表示されます。ダイナミックライブラリがある場合は、そこにも表示する必要があります。
(gdb) info files
Symbols from "myprog".
Native process:
Using the running image of child Thread 0x7ffff7fb4780 (LWP 32214).
While running this, GDB does not access memory from...
Local exec file:
`myprog', file type elf64-x86-64.
Entry point: 0x40ac5e
0x0000000000400238 - 0x0000000000400254 is .interp
0x0000000000400254 - 0x0000000000400274 is .note.ABI-tag
0x0000000000400278 - 0x0000000000400cb4 is .hash
0x0000000000400cb8 - 0x0000000000403148 is .dynsym
0x0000000000403148 - 0x00000000004046b5 is .dynstr
0x00000000004046b6 - 0x00000000004049c2 is .gnu.version
...
「ソースを特定しない」よりも根本的な問題があるようです。GDB *は処理する場所がわかりません。これはGDBをどのように起動したかに関係している可能性があります。代わりに 'gdb -p 804'を試してください。 –
私はGPSのメニューからそれを呼び出しています... – theMayer