whereis
这几天在编译gdb+gdbserver, 要么是编译错误,要么是编译好gdbserver后,下到at91rm9200板子上不能用。目前用得是gdb6.0,编译器有gcc2.95.3,也用过3.3.2。linux是2.4的。<br /> 编译时开始编译gdb还可以通过,第二次make编译gdbserver有连接重定位错误(不是语法得问题能搞定的)。<br /> 你这方面怎么样?哪个版本得源gdb和配合得比较好,你用哪个版本?你有比较好得编译和使用资料吗?我直接下了个别人的gdbserver和连接库文件,也提示:
$gdbserver: error in loading shared libraries: libthread<br />_db.so.1: cannot open shared object file: No such file or directory<br /><br />当然我也不知道他这个gdbserver和库是好,还是针对什么的,我下了个我机子上的libthread_db-1.0.so也不行。<br /> 我发现我机子上这样的库有好几个,在每个gcc编译器下有一个,如2.95.3和3.3.2下,还有PC的linux也有一个,应该一样吗?.
/usr/local/arm/3.4.1/arm-linux/lib/libthread_db-1.0.so<br />/usr/local/arm/3.4.1/arm-linux/lib/libthread_db.so -> libthread_db.so.1<br />/usr/local/arm/3.4.1/arm-linux/lib/libthread_db.so.1 -> libthread_db-1.0.so<br /><br />libthread_db.so.1 is symbol link,你手动link一下。<br /><br />gdbserver,暂时没整过,later。<br />.
pc的应该是对应x86体系的。<br />你的交叉编译器的库,才是对应arm的。<br />2.95.3和3.3.2,肯定不能随便混用的,否则绝对会出现“XXX undefined",这种问题遇到太多了。<br /><br />=====================================================================<br />我发现我机子上这样的库有好几个,在每个gcc编译器下有一个,如2.95.3和3.3.2下,还有PC的linux也有一个,应该一样吗?ftp下了两个新的gdbserver源码
明天再编译试试。<br /><br /> /usr/local/arm/3.4.1/arm-linux/lib/libthread_db-1.0.so<br />/usr/local/arm/3.4.1/arm-linux/lib/libthread_db.so -> libthread_db.so.1<br />/usr/local/arm/3.4.1/arm-linux/lib/libthread_db.so.1 -> libthread_db-1.0. <br /><br />这个我之前试过了。现在编译可以 但是问题还有
在板子上打gdbserver :2345 程序后:<br />ld-linux-2.1.3 连接有问题 libc.so.6.
libc.so.6也是链接<br /><br />/usr/local/arm/3.4.1/arm-linux/lib/libc.so<br />/usr/local/arm/3.4.1/arm-linux/lib/libc.so.6 -> libc-2.3.2.so<br />/usr/local/arm/3.4.1/arm-linux/lib/libc-2.3.2.so <br />/usr/local/arm/3.4.1/arm-linux/lib/libc.a<br /><br />/usr/local/arm/3.4.1/arm-linux/lib/ld-2.3.2.so<br />/usr/local/arm/3.4.1/arm-linux/lib/ld-linux.so.2 -> ld-2.3.2.so是得 都是连接问题
可是我的根本件下面ramdisk解开后库文件的版本低,好像全是1.3.2版本的(在家没带板子),就是说libc-2.3.2.so,ld-2.3.2.so,还很多别的库文件都是1.0版本的。其实这些库只是版本低,在原来的ramdisk里都有,但是提示找不到。你上一步我也是跟综过的。<br /> 然而我用新的如gcc 3.3.2或3.4.1里面的库换掉后换掉后,如换成libc-2.3.2.so,ld-2.3.2.so,连根文件ramdisk启动不来,也就是说要改动init部分,也就意外重新做busybox部分,那工作量更大,然而我也做了busybox,发现新做的busybox做成ramdisk后,内核起不料,处在init过不去。<br /><br /><br />。。。
所以我尝试加了一个库文件后,出现了更过的库文件找不到。其实这些库文件原来都是有,但是版本低,而这些低版本的库文件我还没有找到。因为原来ramdisk的库文件原始lib没有。<br /> whereis
你调试linux 下应用程序用什么?就是模拟的PC上GDB+打印?除了贵的仿真器外。.
whereis被咬上了rockos
呵呵,你不要在旁边偷着笑。你也是大牛啊。<br /> whereis 我的邮箱是duanshenzhen@126.com<br /> <br /> 我的板子nfs已经被我移植成功,可以nfs的,nfs只是从PC上下文件到板子上方便,不是调试应用程序的.这个是做linux必须有的了。<br /> 现在如果能把ramdisk搞定,估计上面的错误不会有了。因为gdbserver已经编译成功了,并且是使用gdbserver时出现的提示问题。<br /> whereis 我的ramdisk里有busybox的,包括init都是busybox生成的啊,这样跟内核配合的。是用ramdisk做根文件系统的.<br /> 之前我编译过busybox和ramdisk,发现内核启动时,有错误,后来放弃了,看来这次真的要重新试试了。<br /> 等这次把整个工作做完,把我做过得文档也给大家分享一下!<br /> ....
收到你发给我的东东。<br /> 用你的做成后,u-boot启动命令设置是这种形式吗:<br /> bootargs root=/dev/ram rw initrd=0x21100000,8000000 ramdisk_size=20000 console=ttyS0,115200,mem=32M 吗?<br />还有 bootcmd=cp.b 10020000 21000000 d2536;cp.b 10200000 21100000 6a79ff;bootm 21000000(2个拷贝分别对应内核,ramdisk从flash到ram)其中有变化吗?<br /> 我还没有仔细看你的。<br />re
gdb和gdb server在gdb软件包中都有, 你在编译前, 应当首先向cross toolchain中加入ncurse库, 或者旧的terminfo库也行<br /><br />我用gcc-3.4.6编译gdb-6.6, 很好用where is
whereis, 顺便帮我看看这个问题:<br /><br />https://bbs.21ic.com/club/bbs/list.asp?boardid=40&page=1&t=2785172&tp=%u6C42%u52A9%3A%20Linux%u4E0BTimer%u7F16%u7A0Brockos
应当首先向cross toolchain中加入ncurse库。<br /><br /> 怎么加?是下一个ncurse,直接安装?还是怎么搞的。。。
下了个gdb5.2.1,编译通过,编译时的ldflags = -static使用静态。(没有根据rockos的做。他说的还俺不明白。)<br /> 下到板子上,可以开启gdbserver,在PC上也可以连上了。但是只能全速运行一次。设置断点后,在运行就出现:<br /> warnning <br /> Cannot insert breakpoint 1.<br /> Error accessing memory address 0x8...<br />
页:
[1]