From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2257 invoked by alias); 14 May 2008 18:13:18 -0000 Received: (qmail 2243 invoked by uid 22791); 14 May 2008 18:13:17 -0000 X-Spam-Check-By: sourceware.org Received: from bluesmobile.specifix.com (HELO bluesmobile.specifix.com) (216.129.118.140) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 14 May 2008 18:13:00 +0000 Received: from [127.0.0.1] (bluesmobile.specifix.com [216.129.118.140]) by bluesmobile.specifix.com (Postfix) with ESMTP id AA0393C23E; Wed, 14 May 2008 11:12:58 -0700 (PDT) Subject: Re: gdb for AT91SAM7 From: Michael Snyder To: Roman Mashak Cc: gdb@sourceware.org In-Reply-To: <40a670230805140042m311ccf04xb948628d0fa4532c@mail.gmail.com> References: <40a670230805140042m311ccf04xb948628d0fa4532c@mail.gmail.com> Content-Type: text/plain Date: Wed, 14 May 2008 18:13:00 -0000 Message-Id: <1210788778.4615.590.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.10.3 (2.10.3-7.fc7) Content-Transfer-Encoding: 7bit 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: 2008-05/txt/msg00116.txt.bz2 On Wed, 2008-05-14 at 00:42 -0700, Roman Mashak wrote: > Hello. > > My question concerns to debugging of embedded code on AT91SAM7 > targets. Briefly about the background of the problem: > 1) I'm using gdb-6.8.50.20080308-cvs > 2) toolchain is based on gcc-4.2.2 for Windows > 3) JTAG is by Segger, they also provide GDB server > > What I'm trying to do is to debug step-by-step the C-startup, written > in ARM assembly language in order to clearly understand the process of > chip initialization, peripheral setup and other low-level stuffs. > > I compiled C-startup and my simple application (printing string out of > the USRT), with "-gdwarf-2 -O0" options as recommended. Then I run > gdb, attach to the target. Since the application is linked to 0x100000 > I set breakpoint on this address: When you say the application is linked to 0x100000, do you mean that that is the start address? > #arm-elf-gdb main.elf > #target remote localhost:2331 > #break *0x100000 > #continue > Continuing. > ... > > At this point it hangs and doesn't step over. But if I do "jump > *0x100000" right after setting up the breakpoint, it works! This is > kind of strange, isn't it? Before you say "continue", or "jump *0x100000", if you ask gdb for the current instruction pointer (presumably "info reg pc"), what does it say? I've had somewhat similar problems in the past. The start address is special in many ways, and so is the whole start-up process. Can you try setting your breakpoint at the 2nd or 3rd instruction after the start address?