動的にリンクされた共有ライブラリを使用して実行されているCアプリケーションをデバッグしています。このプログラムは、Ubuntu 14.04 64ビットで正常に動作します。しかし、Linuxがアプリケーションを終了するときに共有オブジェクトを終了すると、Ubuntu 16.04でセグメント化エラーが発生します。ソースファイルがgdbの情報ソースに基づいて見つかりません
gdbの中で、セグメント化エラーが発生する直前にブレークポイントを設定しました。それから私は、ソースファイルの情報を確認することinfo source
を使用します。
Thread 1 "test" hit Breakpoint 3, _dl_fini() at dl-fini.c:201
(gdb) info source
Current source file is dl-fini.c
Compilation directory is /build/glibc-bfm8X4/glibc-2.23/elf
Located in /build/glibc-bfm8X4/glibc-2.23/elf/dl-fini.c
Source language is c.
Producer is GNU C11 5.4.0 20160609 -mno-mmx -mtune=generic -march=x86-64 -g -O2 -O3 -std=gnu11 -fgnu89-inline -fno-stack-protector -fmerge-all-constants -frounding-math -fPIC -ftls-model=initial-exec.
Compiled with DWARF 2 debugging format.
Does not include preprocessor macro info.
私が示されたコンパイルディレクトリとソースファイルの場所を見つけることができないのです。
ディレクトリ/build/glibc-bfm8X4/glibc-2.23/elfは存在しません。誰もがこのような状況を知っていますか?
ありがとうございます。