From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27892 invoked by alias); 22 Jul 2013 07:26:37 -0000 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 Received: (qmail 27882 invoked by uid 89); 22 Jul 2013 07:26:36 -0000 X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,RDNS_NONE,SPF_PASS autolearn=ham version=3.3.1 Received: from Unknown (HELO mail-oa0-f43.google.com) (209.85.219.43) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 22 Jul 2013 07:26:35 +0000 Received: by mail-oa0-f43.google.com with SMTP id i7so8712875oag.30 for ; Mon, 22 Jul 2013 00:26:28 -0700 (PDT) X-Received: by 10.182.52.202 with SMTP id v10mr19552021obo.73.1374477988079; Mon, 22 Jul 2013 00:26:28 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.116.101 with HTTP; Mon, 22 Jul 2013 00:25:48 -0700 (PDT) In-Reply-To: References: From: Hui Zhu Date: Mon, 22 Jul 2013 07:26:00 -0000 Message-ID: Subject: Re: Reverse debugging for arm baremetal targets? To: Terry Guo Cc: gdb@sourceware.org Content-Type: text/plain; charset=ISO-8859-1 X-SW-Source: 2013-07/txt/msg00072.txt.bz2 On Mon, Jul 22, 2013 at 2:10 PM, Terry Guo wrote: > On Mon, Jul 22, 2013 at 10:07 AM, Hui Zhu wrote: >> On Mon, Jul 22, 2013 at 9:37 AM, Terry Guo wrote: >>> Hi there, >>> >>> Is this feature enabled for arm baremetal targets? If not, is it >>> possible to do so and what kind of problems we need to solve to >>> achieve this? Thanks in advance for your help. >>> >>> Best Regards, >>> Terry >> >> If just for reverse debug, I think it is not depend on the arch. So I >> think it is OK for ARM. >> >> And if I remember is right, simics support it. >> >> Thanks, >> Hui > > Thanks for your reply. I did some tests and it seems to me that > reverse debugging doesn't work for baremetal targets. My test includes > a ARM Cortex-M3 board running a baremetal program, a gdb server and a > baremetal gdb. The gdb version is: > > GNU gdb (GDB) 7.6 > > After I connect to M3 board and run command "record", I got: This error is about process record but not reverse debug. > > Breakpoint 1, main () at main.cpp:24 > 24 xyz = 0; > (gdb) record > Process record: the current architecture doesn't support record function. This is the reason why you cannot use reverse debug commands. You got this error is because: /* Reversible debugging, process record. */ set_gdbarch_process_record (gdbarch, arm_process_record); This line is called in arm_linux_init_abi but you are not a linux target. I found all the "set_gdbarch_process_record" is called in xxx_linux_init function make it depend on Linux. I forget why I do it. :P I think 2 reasons let me do it: 1. syscall record just support linux. 2. make it can pass review. :P But most of prec function is just to record the behavior of instruction. So maybe we can move it to arch init code. Thanks, Hui > (gdb) show ar > architecture args arm > (gdb) show architecture > The target architecture is set automatically (currently arm) > (gdb) n > 26 foo (); > (gdb) s > foo () at main.cpp:16 > 16 xyz = 1; > (gdb) n > 17 return bar (); > (gdb) s > bar () at main.cpp:10 > 10 xyz = 2; > (gdb) reverse-next > Target remote does not support this command. > > Am I doing something wrong? Please advise. > > BR, > Terry