From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28228 invoked by alias); 22 Jun 2004 22:23:02 -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 28218 invoked from network); 22 Jun 2004 22:23:01 -0000 Received: from unknown (HELO sark4.cc.gatech.edu) (130.207.7.19) by sourceware.org with SMTP; 22 Jun 2004 22:23:01 -0000 Received: from gaia.cc.gatech.edu (gaia.cc.gatech.edu [130.207.3.8]) by sark4.cc.gatech.edu (8.12.10/8.12.8) with ESMTP id i5MMN0Ln013249; Tue, 22 Jun 2004 18:23:00 -0400 (EDT) Received: from localhost (zhangtao@localhost) by gaia.cc.gatech.edu (8.12.10/8.12.8) with ESMTP id i5MMN0Np003427; Tue, 22 Jun 2004 18:23:00 -0400 (EDT) Date: Tue, 22 Jun 2004 22:23:00 -0000 From: Tao Zhang To: Michael Elizabeth Chastain cc: gdb@sources.redhat.com Subject: Re: Debug code in data section in gdb In-Reply-To: <20040622210556.3556C4B104@berman.michael-chastain.com> Message-ID: References: <20040622210556.3556C4B104@berman.michael-chastain.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2004-06/txt/msg00227.txt.bz2 Hi, Michael Yeah, I understand GDB will modify the code at the address of a breakpoint. I can break the program just before the execution jump to the code copied from somewhere. Then I set a breakpoint at the beginning of the copied code. It still won't work. Another thing is I see the code is same as the original code. My question is whether I can see the GDB modified instruction by disassemble the memory ? When and How gdb modifies the instruction? I suspect this problem is specific to my port of gdb, so maybe I need to understand how breakpoints work in gdb to understand my problem. Could anybody give me some pointers to articles or online books on debugger or gdb? Thanks so much Tao -Tao Zhang (zhangtao@cc.gatech.edu) On Tue, 22 Jun 2004, Michael Elizabeth Chastain wrote: > Hi Tao, > > It sounds like, perhaps, you are placing the breakpoint first, > and then copying the code on top of the location of the breakpoint. > > The way gdb sets breakpoints (usually) is that gdb writes a BREAKPOINT > instruction into the memory at the address indicated. So if you > set a breakpoint first, then overwrite that memory with your own > contents, then you will overwrite the BREAKPOINT instruction and > lose it. > > Can you capture a complete gdb session with the 'script' command > and mail it in? > > Michael C > GDB QA Guy >