无法使用expat编译GDB以用于远程调试

时间:2016-03-22 02:34:53

标签: xml linux debugging gdb arm

我一直在尝试在64位X86 Ubuntu上编译GDB副本,以便与远程调试ARM设备一起使用。这意味着使用expat编译GDB;连接到远程调试器时,GDB使用XML解析。以下是我尝试过的一些事情以及结果。

仅使用--with-expat编译

./configure --target=arm-none-eabi --with-expat 
make

....
checking whether to use expat... yes
checking for libexpat... (cached) no
configure: error: expat is missing or unusable
Makefile:9125: recipe for target 'configure-gdb' failed
....

使用--with-libexpat-prefix

进行编译
ls -alg /usr/local/lib/*expat*
-rw-r--r-- 1 root 999128 Mar 20 23:55 /usr/local/lib/libexpat.a
-rwxr-xr-x 1 root    942 Mar 20 23:55 /usr/local/lib/libexpat.la
lrwxrwxrwx 1 root     17 Mar 20 23:55 /usr/local/lib/libexpat.so -> libexpat.so.1.6.0
lrwxrwxrwx 1 root     17 Mar 20 23:55 /usr/local/lib/libexpat.so.1 -> libexpat.so.1.6.0
-rwxr-xr-x 1 root 534224 Mar 20 23:55 /usr/local/lib/libexpat.so.1.6.0

./configure --target=arm-none-eabi --with-expat --with-libexpat-prefix=/usr/local/lib
make

....
checking whether to use expat... yes
checking for libexpat... (cached) no
configure: error: expat is missing or unusable
Makefile:9125: recipe for target 'configure-gdb' failed
....

我试图以我能想到的各种方式安装expat。上面的库二进制文件来自expat的本地编译,带有make install;我也做过:

apt-get install libexpat1-dev
apt-get install expat

两者都已是最新版本。与上述结果相同;如果省略--with-expat和--with-libexpat-prefix。

,我只能编译

欢迎提出建议。如何才能找到有关失败的更多信息 - 如何确定制作过程无法找到/批准expat的方式/位置?

同行的旅行者(但我在这里找不到合适的答案):

gdb building with expat

http://comments.gmane.org/gmane.comp.gdb.devel/29306

gdb remote cross debugging fails with "Remote 'g' packet reply is too long"

4 个答案:

答案 0 :(得分:3)

我做了两处改动让它为我工作。

首先,我的./configure命令巧妙地错了。而不是

./configure --target=arm-none-eabi --with-expat --with-libexpat-prefix=/usr/local/lib

应该是

./configure --target=arm-none-eabi --with-expat --with-libexpat-prefix=/usr/local/

因为前缀应该在include和lib之上。从配置文件:

--with-expat            include expat support (auto/yes/no)
--with-libexpat-prefix[=DIR]  search for libexpat in DIR/include and DIR/lib

但我不确定这是真正的解决方案。我仍然得到相同的编译错误,直到我不小心从gdb的根目录中的gdb目录开始编译。让我完全明确:

root@scallion:~/gdb-arm-build/gdb-7.11# ls -alg
total 5016
drwxr-xr-x 16 root    4096 Mar 21 23:48 .
drwxr-xr-x  3 root    4096 Mar 20 16:54 ..
drwxr-xr-x  7 root   20480 Mar 21 23:48 bfd
-rw-rw-rw-  1  200  492650 Feb 24 01:55 ChangeLog
-rwxrwxrwx  1  200    7333 Feb 19  2015 compile
drwxr-xr-x  2 root    4096 Mar 20 16:54 config
-rwxrwxrwx  1  200   43614 Feb  9 19:19 config.guess
-rw-rw-rw-  1  200   25713 Feb  9 19:19 config-ml.in
-rwxrwxrwx  1  200   14916 Jun 11  2014 config.rpath
-rwxr-xr-x  1 root   31637 Mar 21 23:48 config.status
-rwxrwxrwx  1  200   36139 Feb  9 19:19 config.sub
-rwxrwxrwx  1  200  486119 Feb 24 01:55 configure
-rw-rw-rw-  1  200  113771 Feb 24 01:59 configure.ac
-rw-rw-rw-  1  200   18002 Jun 11  2014 COPYING
-rw-rw-rw-  1  200   35147 Jun 11  2014 COPYING3
-rw-rw-rw-  1  200    7639 Jun 11  2014 COPYING3.LIB
-rw-rw-rw-  1  200   25291 Jun 11  2014 COPYING.LIB
drwxr-xr-x  2 root    4096 Mar 20 16:54 cpu
-rwxrwxrwx  1  200   22464 Feb 19  2015 depcomp
-rw-r--r--  1  200    1887 Feb 24 01:59 djunpack.bat
drwxr-xr-x  2 root    4096 Mar 21 23:49 etc
drwxr-xr-x 27 root   36864 Mar 21 23:51 gdb **<<<<<<<< Here**
drwxr-xr-x 12 root    4096 Mar 20 16:54 include
-rwxrwxrwx  1  200   14675 Feb 19  2015 install-sh
drwxr-xr-x  2 root    4096 Mar 21 23:48 intl
drwxr-xr-x  4 root    4096 Mar 21 23:49 libdecnumber
drwxr-xr-x  4 root   12288 Mar 21 23:48 libiberty
-rw-rw-rw-  1  200  263820 Feb  9 19:19 libtool.m4
-rw-rw-rw-  1  200    1768 Jun 11  2014 ltgcc.m4
-rw-rw-rw-  1  200  249723 Jun 11  2014 ltmain.sh
-rw-rw-rw-  1  200    6126 Jun 11  2014 lt~obsolete.m4
-rw-rw-rw-  1  200   11950 Jun 11  2014 ltoptions.m4
-rw-rw-rw-  1  200    4372 Jun 11  2014 ltsugar.m4
-rw-rw-rw-  1  200     703 Jun 11  2014 ltversion.m4
-rw-rw-rw-  1  200    3909 Feb 19  2015 MAINTAINERS
-rw-r--r--  1 root  414118 Mar 21 23:48 Makefile
-rw-rw-rw-  1  200   30110 Feb  9 19:19 Makefile.def
-rw-rw-rw-  1  200 1719859 Feb 24 01:57 Makefile.in
-rw-rw-rw-  1  200   69660 Feb 24 01:55 Makefile.tpl
-rw-r--r--  1  200  736309 Feb 24 01:59 md5.sum
-rwxrwxrwx  1  200    6872 Feb 19  2015 missing
-rwxrwxrwx  1  200    2179 Jun 11  2014 mkdep
-rwxrwxrwx  1  200    3538 Feb 19  2015 mkinstalldirs
-rwxrwxrwx  1  200    2636 Feb 19  2015 move-if-change
drwxr-xr-x  5 root   12288 Mar 21 23:49 opcodes
drwxr-xr-x  7 root    4096 Mar 21 23:49 readline
-rw-rw-rw-  1  200    1719 Jun 11  2014 README
-rw-rw-rw-  1  200     961 Jun 11  2014 README-maintainer-mode
-rw-r--r--  1 root      13 Mar 21 23:48 serdep.tmp
drwxr-xr-x 33 root    4096 Mar 21 23:49 sim
-rwxrwxrwx  1  200    9150 Feb  9 19:19 src-release.sh
-rwxrwxrwx  1  200    2265 Jun 11  2014 symlink-tree
drwxr-xr-x  2 root    4096 Mar 20 16:54 texinfo
-rwxrwxrwx  1  200    6421 Feb 19  2015 ylwrap
drwxr-xr-x 14 root    4096 Mar 21 23:48 zlib

直到我从目录make运行gdb-arm-build/gdb-7.11/gdb才对我成功。使用生成的gdb二进制文件,我现在可以连接到目标,停止,启动看看寄存器,符号等。如果我发现编译中有任何不足之处,我会跟进,但现在我很好。

我不知道我在这里不理解什么,所以如果有人能说清楚我犯的是什么错误,我会很感激。

答案 1 :(得分:0)

在Ubuntu上 gdb你的程序&lt; - 这是不正确的 arm-linux-gnueabihf -gdb你的程序&lt; - 这是正确的远程gdb

答案 2 :(得分:0)

我遇到了完全相同的情况。虽然我无法给出麻烦的确切原因,但我相信它可能与makeinfo有关。当尝试从gdb-7.6升级到gdb-7.11时,我遇到了一些我需要下载的东西;因此重新运行configure并在其间进行包装安装几次 长短:我删除了gdb-7.11文件夹,解开它是新鲜的,它通过与expat完美连接:./ configure --with-read-line --with-expat

答案 3 :(得分:0)

gdb 8.3 版本也有同样的问题。想了很多办法,还是不行。最后我用了10.2版本,所有问题都没有了。 上帝祝福你, 祝你好运。