This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/948: Provide a tempoary regcache when popping a frame


>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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]