This is an archive of the discontinued LLVM Phabricator instance.

[compiler-rt] Fix missing frame with stackwalking on windows 64-bits
ClosedPublic

Authored by etienneb on Jul 14 2016, 8:00 AM.

Diff Detail

Event Timeline

etienneb updated this revision to Diff 63977.Jul 14 2016, 8:00 AM
etienneb retitled this revision from to [compiler-rt].
etienneb updated this object.
etienneb added a reviewer: rnk.
rnk edited edge metadata.Jul 14 2016, 8:16 AM

This passes the 32-bit tests? I would at least expect all the stack frames to be off by one now...

In D22358#484147, @rnk wrote:

This passes the 32-bit tests? I would at least expect all the stack frames to be off by one now...

It should pass all tests:

// Skip the RTL frames by searching for the PC in the stacktrace.
 uptr pc_location = LocatePcInTrace(pc);
 PopStackFrames(pc_location);

This is removing stackframes above the pc_location. So, as I get it, this should always be valid.
The drawback, when there is more than 32 stackframe, we may miss the last one.

rnk accepted this revision.Jul 14 2016, 8:26 AM
rnk edited edge metadata.

lgtm

This revision is now accepted and ready to land.Jul 14 2016, 8:26 AM
etienneb retitled this revision from [compiler-rt] to [compiler-rt] Fix missing frame with stackwalking on windows 64-bits.Jul 14 2016, 11:36 AM
etienneb edited edge metadata.
etienneb closed this revision.Jul 14 2016, 3:11 PM