我已经在Linux主机上安装了Eclipse CDT,CodeSourcery G++工具链。我使用的是Code Sourcery Eclipse IDE。我已经使用Linux Target Image Builder将Linux内核从Freescale站点安装到MCF5485板上。
我已经使用Sourcery Eclipse IDE在我的Linux主机上创建了一个"helloworld“项目。我已经将可执行文件(如gdbserver、catchsgev等)从Sourcery文件夹复制到根文件系统中的主板上。
我在主板上运行gdbserver,然后在Linux机器上使用TCP进行调试。在Sourcery Eclipse IDE中,我将sysroot on target指定为/,因为我已经在主板的根目录(/root/bin)中安装了gdbserver。
我已经在Eclipse的调试配置中指定了IP地址,而rest是缺省的。我已经在Debug Configurations的共享库选项卡中选择了"Translate sysroot pathnames“选项
我启动gdbsrver on board (gdbserver IP:port /pathname/to/executable),然后在Linux主机上启动debug configuration。由于断点,它在main()处停止。当我按resume时,它会给出以下错误。
warning: .dynamic section for "C:\\Program Files\\CodeSourcery\\Sourcery G++\\m68k-linux-gnu\\libc/lib/libc.so.6" is not at the expected address (wrong library or version mismatch?)
Stopped due to shared library event
Stopped due to shared library event
Stopped due to shared library event我的程序如下:
include <stdio.h>
int main(void)
{
int i=0;
printf("Hello = %d",i);
return 0;
}我在一些论坛上读到我需要设置sysroot,但我也读到,如果我已经在主板的根文件系统中安装了sysroot,我不需要做任何事情。
发布于 2009-08-01 02:54:57
不确定是否需要将Code Sourcery工具放在目标上,但看起来确实像是GDB客户端或Eclipse找不到目标库,或者目标库与Code Sourcery工具正在使用的库不匹配。
我希望这些库是作为目标linux构建的一部分构建的。它们需要针对您的目标处理器进行交叉编译,并最终保存在目标文件系统的/lib目录下。Code Sourcery可能会为您的目标提供预构建库,然后这些库必须是您的目标应该使用的库。它们需要是目标文件系统的一部分。
https://stackoverflow.com/questions/1167332
复制相似问题