This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
gdb/948: Provide a tempoary regcache when popping a frame
- From: ac131313 at redhat dot com
- To: gdb-gnats at sources dot redhat dot com
- Date: 19 Jan 2003 17:35:40 -0000
- Subject: gdb/948: Provide a tempoary regcache when popping a frame
- Reply-to: ac131313 at redhat dot com
>Number: 948
>Category: gdb
>Synopsis: Provide a tempoary regcache when popping a frame
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: maintenance
>Submitter-Id: net
>Arrival-Date: Sun Jan 19 17:38:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: ac131313@redhat.com
>Release: unknown-1.0
>Organization:
>Environment:
>Description:
Resgister values, when popping a frame can come from not only memory, but also other registers.
If care isn't taken, this can lead to problems - a register may be overridden before its value (needed for the previous frame) has been read.
I think the `correct fix' is to provide a scratch register cache. Let the pop() method restore into that, and then, when all is finished, write that out to the real regcache.
Interestingly, I'm also left wondering if the pop() function can simply be implemented using a scratch regcache, the list of save/restore registers, and the register unwind method ....
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: