From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21525 invoked by alias); 20 Sep 2010 14:59:29 -0000 Received: (qmail 21516 invoked by uid 22791); 20 Sep 2010 14:59:28 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 20 Sep 2010 14:59:18 +0000 Received: (qmail 21361 invoked from network); 20 Sep 2010 14:59:16 -0000 Received: from unknown (HELO orlando.localnet) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 20 Sep 2010 14:59:16 -0000 From: Pedro Alves To: gdb@sourceware.org Subject: Re: remote debugging: "call" just leads to "Cannot insert breakpoint 0" Date: Mon, 20 Sep 2010 14:59:00 -0000 User-Agent: KMail/1.13.2 (Linux/2.6.33-29-realtime; KDE/4.4.2; x86_64; ; ) Cc: Steffen Dettmer References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201009201559.12650.pedro@codesourcery.com> X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2010-09/txt/msg00113.txt.bz2 On Monday 20 September 2010 15:41:45, Steffen Dettmer wrote: > Hi, > > using gdb-arm-elf (non-linux) running on x86 linux I think remote > functions can be invoked (such as "(gdb) print strlen(str)"), but > I just get "Cannot insert breakpoint 0". > > Why is gdb trying to break at 0? > > Any ideas what could cause this? GDB defaults to place the call dummy breakpoint at the entry point. Your binary probably has entry point == 0. > > Do I do something wrong? > Do I need to setup anything special? > > This issue was reported for a wide range of gdb versions (6.4, > 6.8, 7.1/7.2), actually never worked for us, but I think it > should work, shouldn't it? > > The trace shows that when you type the "call" command, GDB sets > up the registers, sets a breakpoint (to be reached at the end of > the function execution, I believe), and resumes the execution. > The problem is that the breakpoint is always set at address 0, on > 4 bytes: > > "Sending packet: $Z0,0,4#46...Ack" > -> It makes no sense to set such a breakpoint at address 0, and > BTW this breakpoint is never reached. It fails immediately > because it is impossible to set this breakpoint. > > p &toto > p &toto > $1 = (int ()) 0xc0000248 > set debug remote 1 > set debug remote 1 > call toto() > call toto() > Sending packet: $Pe=00000000#72...Ack > Packet received: OK > Packet P (set-register) is supported > Sending packet: $Pd=980702c0#be...Ack > Packet received: OK > Sending packet: $Pf=480200c0#b4...Ack > Packet received: OK > Sending packet: $Z0,0,4#46...Ack > Packet received: E00 > Sending packet: $Pd=a00702c0#de...Ack > Packet received: OK > Sending packet: $Pe=100200c0#a8...Ack > Packet received: OK > Sending packet: $Pf=520200c0#af...Ack > Packet received: OK > Warning: > Cannot insert breakpoint 0. > Error accessing memory address 0x0: Unknown error 4294967295. > > > Any hints appreciated. > > oki, > > Steffen > -- Pedro Alves