From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7582 invoked by alias); 8 Jan 2003 03:49:10 -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 7575 invoked from network); 8 Jan 2003 03:49:09 -0000 Received: from unknown (HELO mail.s.netic.de) (212.9.160.11) by 209.249.29.67 with SMTP; 8 Jan 2003 03:49:09 -0000 Received: from isdn005.s.netic.de ([212.9.162.5] helo=schleim.qwe.de) by mail.s.netic.de with esmtp (Exim 4.10) id 18W78q-000JXh-00 for gdb@sources.redhat.com; Wed, 08 Jan 2003 04:44:33 +0100 Received: from schleim (localhost [127.0.0.1]) by schleim.qwe.de (Postfix) with ESMTP id 07E7DBA0 for ; Wed, 8 Jan 2003 04:13:49 +0100 (CET) Content-Type: text/plain; charset="us-ascii" From: Torsten Mohr To: gdb Subject: ARM, registers, "frame 0", where's the PC? Date: Wed, 08 Jan 2003 03:49:00 -0000 User-Agent: KMail/1.4.3 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200301080413.48695.tmohr@s.netic.de> X-SW-Source: 2003-01/txt/msg00073.txt.bz2 Hi, i received a hint by mail to send ALL registers from the GDB remote protocol server back to arm-unknown-elf-insight. I now do that but it i still get this unwanted behaviour: I can download a program, start it, stop it, read registers (the correct values are shown, as i see in the debug output of my debug server). The values make sense, R15 is exactly where i expect it to be. But when i stop the program, "insight" tells me that it stopped at 0x01002048. That's nowhere in my program and not what's shown in R15. In the GDB console, "info registers" shows the same values as in "insight". Especially "p/x $pc" says 0x02020070 what makes sense and is correct. In "info gdb" i read: Normally, register values are relative to the selected stack frame (*note Selecting a frame: Selection.). This means that you get the value that the register would contain if all stack frames farther in were exited and their saved registers restored. In order to see the true contents of hardware registers, you must select the innermost frame (with `frame 0'). When i type "frame 0", gdb says: gdb) frame 0 #0 0x01002048 in ?? () This seems to be related to the problem. I have to admit i don't understand that. Why can't GDB say where it stopped, it has the correct value for R15. Also, inbetween the stop ("\x03") and the reading of the registers ("g") there is no other request from GDB. What info is missing? Thanks for any hints, Torsten.