From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17510 invoked by alias); 14 Aug 2003 15:13:37 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 17478 invoked from network); 14 Aug 2003 15:13:35 -0000 Received: from unknown (HELO web15306.mail.bjs.yahoo.com) (202.3.77.181) by sources.redhat.com with SMTP; 14 Aug 2003 15:13:35 -0000 Message-ID: <20030814151333.52605.qmail@web15306.mail.bjs.yahoo.com> Received: from [218.65.206.116] by web15306.mail.bjs.yahoo.com via HTTP; Thu, 14 Aug 2003 23:13:33 CST Date: Thu, 14 Aug 2003 15:13:00 -0000 From: =?gb2312?q?=C0=F2=BE=EA=20=C1=F5?= Subject: I have some problem on gdbserver To: gdb@sources.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset=gb2312 Content-Transfer-Encoding: 8bit X-SW-Source: 2003-08/txt/msg00151.txt.bz2 Iwant to build cross-compile to my target, then I build gdbserver this way. for example: $ export CC=my-cross-compiler(arm-linu-gcc) $ path-to-gdbserver-sources/configure your-target-name(arm-linux) $ make But when I run gdbserver: $ arm-linux-gcc -g -o filename filename.c $ ./gdbserver host:1234 filename error: bash:./gdbserver:cannot execute binary file. Who can tell this is why? I also buils according to BillGatliff,but the error is same with above. First, make sure you have a functional arm-linux toolchain built, and that it's in your search path. Then, do this: [bgat@mars gnu] tar xzf gdb-5.2.tar.gz [bgat@mars gnu] mkdir build-gdb && cd build-gdb [bgat@mars build-gdb] ../gdb-5.2/configure --target=arm-linux \ --host=arm-linux --build=`../gdb-5.2/config.guess` The backticks in the --build option cause the command to run config.guess to figure out the identity of the host machine. This may be pedantic, but it works for me so I included it here. [bgat@mars build-gdb] cd gdb/gdbserver [bgat@mars build-gdb] make CC=arm-linux-gcc [bgat@mars build-gdb] file gdbserver ./gdbserver: ELF 32-bit LSB executable, ARM, version 1 (ARM), dynamically linked (uses shared libs), not stripped You probably don't want your gdbserver to use shared libraries, unless your target environment supports them (and you want to prove that they actually work!). To save some hair, you'll probably want to build a statically-linked gdbserver instead, so that you can debug even if shared libraries are broken. To do that, edit the Makefile in gdb/gdbserver, and modify LDFLAGS: LDFLAGS = -static There may be other LDFLAGS flags already there, which you'll want to leave alone--- just add -static to the end of the list. In other cases, LDFLAGS may not exist at all; just add the above line somewhere near CFLAGS. Then, rebuild gdbserver: [bgat@mars build-gdb] make clean [bgat@mars build-gdb] make CC=arm-linux-gcc [bgat@mars build-gdb] file gdbserver gdbserver: ELF 32-bit LSB executable, ARM, version 1 (ARM), statically linked, not stripped Run arm-linux-strip on the executable, if you want to shrink it down: [bgat@mars build-gdb] arm-linux-strip gdbserver [bgat@mars build-gdb] ls -l gdbserver -rwxrwxr-x 1 bgat bgat 249164 Aug 2 11:16 gdbserver Now, before you forget: :^) [bgat@mars build-gdb] mv gdbserver arm-linux-gdbserver regards! _________________________________________________________ Do You Yahoo!? ÊîÆÚ´óƬÆë¾ÛÑÅ»¢Í¨ ÍøÂçÉãÏñÍ·+ÑÅ»¢Í¨µ÷ƵÊÕÒô»úµÈÄãÀ´Äà http://cn.rd.yahoo.com/mail_cn/tag/?http://cn.promo.yahoo.com/minisite/messenger1/