Closed Bug 1099444 Opened 5 years ago Closed 5 years ago

[jsdbg2] Debug mode OSR incorrectly reports pc as 1 past the actual pc

Categories

(Core :: JavaScript Engine: JIT, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla36

People

(Reporter: shu, Assigned: shu)

References

Details

Attachments

(1 file)

When asking for the baseline script and pc via JitFrameIterator, the pc is usually resolved via binary search on Baseline IC entries.

For debug mode OSR, if the pc is asked for while the stack is being patched, we  use the resume addr off the DebugModeOSRInfo in the cases where we can't patch the stack directly due to its needing fix ups for registers and the like (e.g., in the case of patching a callVM). Unfortunately, in those cases, the resume addr is always settled on 1 *past* the current pc, since we need to resume at the next op. This incorrectly reports the pc when the current frame offset is asked for via Debugger.Frame.prototype.offset.
Not sure why I didn't do it this way to begin with! I've always stashed the actual pc right there.
Attachment #8523290 - Flags: review?(jdemooij)
Blocks: 1098696
Assignee: nobody → shu
Comment on attachment 8523290 [details] [diff] [review]
Fix getting pc offsets from BaselineFrames mid-debug mode OSR.

Review of attachment 8523290 [details] [diff] [review]:
-----------------------------------------------------------------

It does seem simpler :)
Attachment #8523290 - Flags: review?(jdemooij) → review+
https://hg.mozilla.org/mozilla-central/rev/35fdd016d705
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
You need to log in before you can comment on or make changes to this bug.