This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] Resubmit process record and replay, 6/10
- From: teawater <teawater at gmail dot com>
- To: "Michael Snyder" <msnyder at vmware dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Fri, 5 Dec 2008 11:35:01 +0800
- Subject: Re: [RFA] Resubmit process record and replay, 6/10
- References: <daef60380811160022y51f62febx66fd6fd1ece2973a@mail.gmail.com> <4924C39B.7040101@vmware.com> <daef60380811232308m29651103gdd9e0b7764e0220a@mail.gmail.com> <492AFD8F.5000800@vmware.com> <daef60380811241840n48399e1bh621a19de7dd739ad@mail.gmail.com> <492C424A.7020203@vmware.com> <daef60380811251833r99dd967y276c745c37f54b01@mail.gmail.com>
Hi Michael,
Could you help me in
http://sourceware.org/ml/gdb-patches/2008-11/msg00695.html
Thanks,
Hui
On Wed, Nov 26, 2008 at 10:33, teawater <teawater@gmail.com> wrote:
> Sorry I forget a big part that need it.
> When GDB work in replay mode, P record will set regs and memory in
> record_wait. All of them can't be record.
>
> So what about set not_record flag to record_wait in replay mode,
> record_insert_breakpoint and record_remove_breakpoint.
>
> And about the name of this flag, do you have some idea on it?
>
>
> Thanks,
> Hui
>
>
> On Wed, Nov 26, 2008 at 02:22, Michael Snyder <msnyder@vmware.com> wrote:
>> teawater wrote:
>>>
>>> On Tue, Nov 25, 2008 at 03:16, Michael Snyder <msnyder@vmware.com> wrote:
>>>>
>>>> teawater wrote:
>>>>>
>>>>> Hi Michael,
>>>>>
>>>>> About "record_not_record_set", It set record_not_record to let P
>>>>> record doesn't record the memory and registers control behaviors of
>>>>> GDB in function record_store_registers and record_xfer_partial.
>>>>>
>>>>> So I think the name "record_not_record_set" and
>>>>> "record_skip_recording" are not very clear.
>>>>> Could you please give me some advices on it?
>>>>
>>>> Yeah, that's pretty much the way I understood it.
>>>>
>>>> It sets a one-time flag that says "omit (skip) recording
>>>> registers and memory that would otherwise be recorded".
>>>>
>>>> And if I understand correctly, this is to avoid adding
>>>> changes to the record log that are made by gdb when it
>>>> resumes the target. It's only called from "proceed()".
>>>>
>>>> I'm not completely clear on what those changes are.
>>>> Is gdb modifying the PC? Or are you perhaps trying to
>>>> avoid recording breakpoints?
>>>
>>> I think avoid recording breakpoints is the main affect.
>>> Another function is help deal with displaced step. Of course, P record
>>> and displaced step will not work together now.
>>>
>>> I think I add "record_not_record" function is because I want
>>> record_store_registers and record_xfer_partial just record the user
>>> level change, not for others.
>>> What do you think about it?
>>
>> OK, so if we ignore displaced stepping for now, then can we
>> limit the issue to breakpoints?
>>
>> Breakpoint writes will all pass through functions called
>> memory_insert_breakpoint and memory_remove_breakpoint (mem-break.c).
>>
>> So what we want to do is get the information from there into
>> record.c. I guess you could do pretty much what you are doing
>> now, only call the access function from mem-break.c instead of
>> from infrun. It would help to localize it and make its meaning
>> clear.
>>
>> Maybe call it "dont_record_memory_breakpoint" or something like that.
>>
>>
>