From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21492 invoked by alias); 13 Sep 2010 05:54:00 -0000 Mailing-List: contact archer-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: List-Id: Received: (qmail 21481 invoked by uid 22791); 13 Sep 2010 05:53:58 -0000 X-SWARE-Spam-Status: No, hits=-6.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Date: Mon, 13 Sep 2010 05:54:00 -0000 From: Kevin Buettner To: archer@sourceware.org Subject: Re: gdbstub initial code, v9 Message-ID: <20100912225350.6d5ccc12@mesquite.lan> In-Reply-To: <20100909152937.GA21586@redhat.com> References: <20100908191838.GA27120@redhat.com> <20100909152937.GA21586@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SW-Source: 2010-q3/txt/msg00185.txt.bz2 On Thu, 9 Sep 2010 17:29:37 +0200 Oleg Nesterov wrote: > Currently ugdb only supports non-stop Could someone explain to me why non-stop (rather than all-stop) is being focused upon first? I skimmed the v9 code. It's good to see that support has been added for the 'm', 'M', and 'g' commands. It appears to me that 'G' and 's' are still missing though. As discussed by Jan, x86 will need G (or P, but G is required by the spec whereas P is not), due to the need to adjust the PC backwards after a break. (In gdb sources, this is known as decr_pc_after_break.) Something else that came to mind while reading this thread is the issue of cache synchronization. When writing either breakpoints or original instructions to memory, it may be necessary to flush the data cache to memory and invalidate some lines in the instruction cache so as to not have the CPU execute the instruction that was there prior to the modification - i.e. you want the CPU to execute the instruction that was just written to memory, not necessarily whatever it has lying about it it's cache. It occurred to me that this could be one reason for breakpoints not working after implementation of the 'M' command. (If the kernel calls that you're using already automagically do this, then ignore this comment...) Kevin