Re: Debug code in data section in gdb

Tao Zhang
2004-06-22T22:23:02Z

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
>