Debugging 我在linux gcc下的调试构建缺少其中一些的符号信息

Debugging 我在linux gcc下的调试构建缺少其中一些的符号信息,debugging,gcc,eclipse-cdt,debug-information,Debugging,Gcc,Eclipse Cdt,Debug Information,我在Github上完成了一个使用autotools的C项目。在使用调试选项构建它之后,我无法进入某些函数。调试器显示:“无调试信息” 以下是我的构建过程: $ ./autogen.sh $ mkdir Debug $ cd Debug $ ../configure --prefix=/Debug CPPFLAGS=-DDEBUG CFLAGS="-O0 -g3 -Wall" $ make $ make check 有关信息,源代码树有两个级别的文件夹:perfo/、src/、src/core/

我在Github上完成了一个使用autotools的C项目。在使用调试选项构建它之后,我无法进入某些函数。调试器显示:“无调试信息”

以下是我的构建过程:

$ ./autogen.sh
$ mkdir Debug
$ cd Debug
$ ../configure --prefix=/Debug CPPFLAGS=-DDEBUG CFLAGS="-O0 -g3 -Wall"
$ make
$ make check
有关信息,源代码树有两个级别的文件夹:perfo/、src/、src/core/、src/utils/、tests/,等等

当我调试tests/xxx时,我在tests/xxx.c中有函数的符号,但在src/core/global.c中没有

根据这些信息,我试图检查对象文件,但它们看起来具有相同的调试信息属性

$ readelf -WS tests/reqrep.o | grep debug_info
  [ 6] .debug_info       PROGBITS        0000000000000000 00118a 000735 00      0   0  1
  [ 7] .rela.debug_info  RELA            0000000000000000 00d5d0 000d20 18     25   6  8
$ readelf -WS src/core/global.o | grep debug_info
  [ 6] .debug_info       PROGBITS        0000000000000000 002d87 002360 00      0   0  1
  [ 7] .rela.debug_info  RELA            0000000000000000 01ccb8 003180 18     25   6  8
我正在调试EclipseCDT。调试生成配置文件是相同的。例如,如果我通过控制台从头开始重建,Eclipse CDT在调试时不会重建,因为它是最新的。当然,我已经尝试过从控制台构建和Eclipse构建进行调试。调试配置看起来很正确:application=Debug/tests/.libs/reqrep,使用GDB(DSF)和非停止模式,构建配置为Debug,源查找路径为默认路径


有什么想法吗?

正如n.m.所解释的,解决方案是在调试配置中添加LD_LIBRARY_PATH环境变量,设置为构建库的路径


尝试查看构建日志。是否存在没有
-g3
的gcc调用?生成日志中只显示CC和CCLD。我假设它们是由带有适当选项的Makefile定义的。否则,我假设我无法进入任何函数。详细构建日志:每个编译命令都设置了-g3:
$grep“gcc-std=gnu99”xxx.build.log | wc-l
196
$grep“gcc-std=gnu99”xxx.build.log | grep g3 | wc-l
195
$grep“gcc-std=gnu99”xxx.build.log | grep-vg3
libtool:link:gcc-std=gnu99-shared-fPIC-DPIC…等等…所有源代码都编译好了吗?是否生成了共享库?