This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Debug code in data section in gdb
- From: Tao Zhang <zhangtao at cc dot gatech dot edu>
- To: Michael Elizabeth Chastain <mec dot gnu at mindspring dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Tue, 22 Jun 2004 18:23:00 -0400 (EDT)
- Subject: Re: Debug code in data section in gdb
- References: <20040622210556.3556C4B104@berman.michael-chastain.com>
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
>