C gdb信息行:。。。但不包含任何代码

C gdb信息行:。。。但不包含任何代码,c,gdb,gdbserver,C,Gdb,Gdbserver,我在信息行上发现一个奇怪的gdb错误 gdb) info line Line 252 of "main.c" is at address 0x7f29e979c987 <main+314> but contains no code. gdb似乎清楚地知道源文件: (gdb) info source Current source file is main.c Compilation directory is /home/charletr/src/quagga/zebra Locat

我在
信息行
上发现一个奇怪的gdb错误

 gdb) info line
Line 252 of "main.c" is at address 0x7f29e979c987 <main+314> but contains no code.
gdb似乎清楚地知道源文件:

(gdb) info source
Current source file is main.c
Compilation directory is /home/charletr/src/quagga/zebra
Located in /home/charletr/src/quagga/zebra/main.c
Contains 414 lines.
Source language is c.
Compiled with DWARF 2 debugging format.
Does not include preprocessor macro info.
但是,另一方面,我无法通过信息线说出合理的话: (这是试图从第1帧列出的地址打印信息行,我非常自信我有源代码)

gdb:info-line
可以找到源代码但无法确定行数的原因可能是什么

注意:我确实有一个非常奇怪的构建系统/目标系统设置。 我在构建系统上构建并将对象复制到目标系统。然后在目标系统上运行gdbserver。然后在构建系统上运行gdb,并使用
targetremote
命令连接到目标系统上的gdbserver

希望,
瑞奇

我想出来了。我会把它贴在这里,以防它发生在其他人身上。因此,我的构建系统和目标系统有不同的linux内核版本,因此有不同的libc(glibc)版本。我需要做的是指示构建系统上的本地gdb使用不同的sysroot,以便匹配远程目标上的内容。我是通过.gdbinit文件这样做的:

set sysroot /opt/6WIND/contrib/toolchain/gcc-4.3.2-glibc-2.7/x86_64-pc-l‌​inux-gnu/sys-root/
set sysroot remote:/

–user3101167

编译时是否启用了任何优化选项?是的。我用“-g-O0”编译,我的构建系统和目标系统之间的动态链接差异可能在这里起作用吗?大家好。。。。嗯,我知道了。我会把它贴在这里,以防它发生在其他人身上。因此,我的构建系统和目标系统有不同的linux内核版本,因此有不同的libc(glibc)版本。我需要做的是指示构建系统上的本地gdb使用不同的sysroot,以便匹配远程目标上的内容。我是通过.gdbinit文件这样做的:“code”set sysroot/opt/6WIND/contrib/toolchain/gcc-4.3.2-glibc-2.7/x86_64-pc-linux-gnu/sys-root/set sysroot remote:/“code”OK。。。我真的无法在这里找到格式化的元标记。。我将在以下两条注释中发布.gdbinit文件的两行内容:
(gdb) bt
#0  0x00007f29e88431f3 in __select_nocancel () from /home/charletr/src/aries-uprevquagga/debug/lib/libc.so.6
#1  0x00007f29e8f309eb in ?? ()
#2  0x00007fffef3b58c0 in ?? ()
#3  0x00007fffef3b5a70 in ?? ()
#4  0x00007fffef3b5a60 in ?? ()
#5  0x00007f29e99d68b8 in ?? ()
#6  0x00007f29e99d6a28 in ?? ()
#7  0x00007f29e99d69a8 in ?? ()
#8  0x00007f29e99d6928 in ?? ()
#9  0x00007f29e99d69a8 in ?? ()
#10 0x00007fffef3b58e0 in ?? ()
#11 0x00007fffef3b5960 in ?? ()
#12 0x0000000000000000 in ?? ()
(gdb) info line *0x00007f29e8f309eb
No line number information available for address 0x7f29e8f309eb
set sysroot /opt/6WIND/contrib/toolchain/gcc-4.3.2-glibc-2.7/x86_64-pc-l‌​inux-gnu/sys-root/
set sysroot remote:/